public static JsonDoc ParseObject(JObject obj, IRequestEncoder encoder) { var values = new Dictionary <string, object>(); foreach (var child in obj.Children <JProperty>()) { if (child.Value is JArray) { if (child.Value.First is JObject) { var objs = ParseObjectArray(child.Value as JArray, encoder); values.Add(child.Name, objs); } else { var objs = ParseTypeArray <string>(child.Value as JArray, encoder); values.Add(child.Name, objs); } } else if (child.Value is JObject) { values.Add(child.Name, ParseObject(child.Value as JObject, encoder)); } else { values.Add(child.Name, (child.Value as JValue).Value); } } return(new JsonDoc(values, encoder)); }
public static IEnumerable <JsonDoc> ParseObjectArray(JArray objs, IRequestEncoder encoder) { var responses = new List <JsonDoc>(); foreach (var child in objs.Children <JObject>()) { responses.Add(ParseObject(child, encoder)); } return(responses); }
public static IEnumerable <T> ParseTypeArray <T>(JArray objs, IRequestEncoder encoder) { var response = new List <T>(); foreach (var child in objs.Children <JToken>()) { response.Add(child.Value <T>()); } return(response); }
public static JsonDoc Parse(string json, IRequestEncoder encoder = null) { var parsed = JsonConvert.DeserializeObject(json); if (parsed is JObject) { return(ParseObject(parsed as JObject, encoder)); } return(null); }
private JsonDoc(Dictionary <string, object> values, IRequestEncoder encoder = null) { _dict = values; _encoder = encoder; }
public JsonDoc(IRequestEncoder encoder = null) { _dict = new Dictionary <string, object>(); _encoder = encoder; }
public static T ParseSingleValue <T>(string json, string name, IRequestEncoder encoder = null) { var doc = Parse(json, encoder); return(doc.GetValue <T>(name)); }