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); }
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); }