public KeyValuePair <string, object> GetKeyValuePair(KeyValueNode node) { object value = null; if (node.Value is ListKeyValueNode) { // has key, value var listKeyvalueNodeParser = new ListKeyValueNodeParser(); Dictionary <string, object> dictionary = listKeyvalueNodeParser.GetDictionary(node.Value as ListKeyValueNode); value = dictionary; } //else if (node.Value is KeyArrayNode) //{ // var keyArrayNodeParser = new KeyArrayNodeParser(); // KeyValuePair<string, ArrayList> keyValueArrayPair = keyArrayNodeParser.GetKeyArrayListPair(node.Value as KeyArrayNode); // value = keyValueArrayPair; //} else if (node.Value is ValueNode) { var ValueNodeParser = new ValueNodeParser(); var valueNode = ValueNodeParser.GetDictionaryValue(node.Value as ValueNode); value = valueNode; } var keyArrayListPair = new KeyValuePair <string, object>(node.Key, value); return(keyArrayListPair); }
public ArrayList GetArrayList(ArrayNode arrayNode) { ArrayList arrayList = new ArrayList(); foreach (var item in arrayNode.Values) { if (item is ListKeyValueNode) { // has key, value var listKeyvalueNodeParser = new ListKeyValueNodeParser(); var listKeyvalueNode = listKeyvalueNodeParser.GetDictionary(item as ListKeyValueNode); arrayList.Add(listKeyvalueNode); } else if (item is ArrayNode) { var arrayNodeParser = new ArrayNodeParser(); var innerArrayList = arrayNodeParser.GetArrayList(item as ArrayNode); arrayList.Add(innerArrayList); } else if (item is ValueNode) { var ValueNodeParser = new ValueNodeParser(); var value = ValueNodeParser.GetDictionaryValue(item as ValueNode); arrayList.Add(value); } else { throw new Exception(); } } return(arrayList); }