示例#1
0
        public INode GetKeyValueNode(KeyValuePair <string, object> keyValuePair)
        {
            INode value = null;

            if (keyValuePair.Value is Dictionary <string, object> )
            {
                // has key, value
                var listKeyvalueNodeParser = new ListKeyValueNodeParser();
                var listKeyvalueNode       = listKeyvalueNodeParser.GetKeyValueNodes(keyValuePair.Value as Dictionary <string, object>, 0);
                value = listKeyvalueNode;
            }
            //else if (keyValuePair.Value is ArrayList)
            //{
            //    var keyArrayNodeParser = new KeyArrayNodeParser();
            //    var arrayNode = keyArrayNodeParser.GetArrayListNode(keyValuePair.Key, keyValuePair.Value as ArrayList);
            //    value = arrayNode;
            //}
            else if (keyValuePair.Value is object) // needs to be last
            {
                var ValueNodeParser = new ValueNodeParser();
                var valueNode       = ValueNodeParser.GetValueNode(keyValuePair.Value as object);
                value = valueNode;
            }

            KeyValueNode rootnode = new KeyValueNode();

            rootnode.Key   = keyValuePair.Key;
            rootnode.Value = value;

            return(rootnode);
        }
示例#2
0
        public ArrayNode GetArrayNode(ArrayList arrayList)
        {
            List <INode> nodes   = new List <INode>();
            int          counter = 0;

            foreach (var item in arrayList)
            {
                if (item is Dictionary <string, object> )
                {
                    // has key, value
                    var listKeyvalueNodeParser = new ListKeyValueNodeParser();
                    var listKeyvalueNode       = listKeyvalueNodeParser.GetKeyValueNodes(item as Dictionary <string, object>, counter);
                    nodes.Add(listKeyvalueNode);
                }
                else if (item is ArrayList)
                {
                    // array that does not have a key
                    var arrayNodeParser = new ArrayNodeParser();
                    var arrayNode       = arrayNodeParser.GetArrayNode(item as ArrayList);
                    nodes.Add(arrayNode);
                }
                else if (item is object)
                {
                    var ValueNodeParser = new ValueNodeParser();
                    var valueNode       = ValueNodeParser.GetValueNode(item as object);
                    nodes.Add(valueNode);
                }
                else
                {
                    throw new Exception();
                }

                counter++;
            }

            var ArrayNode = new ArrayNode()
            {
                Values = nodes,
            };

            return(ArrayNode);
        }