public List<Dictionary<string, object>> Parse(IRestResponse<dynamic> responseToParse, ParserRules ruleset) { if (responseToParse.ResponseStatus != ResponseStatus.Completed) throw new ApplicationException("Response was not [Completed]"); if (responseToParse.Data == null) throw new ApplicationException("Response data could not be parsed"); var resultset = responseToParse.Data as IEnumerable<dynamic>; if (resultset == null) throw new ApplicationException("Response data could not be identified as collection"); List<Dictionary<string, object>> l = new List<Dictionary<string, object>>(); foreach (Dictionary<string, object> item in resultset) { var newItem = new Dictionary<string, object>(); foreach (var field in ruleset.Fields) { if (item.ContainsKey(field.Selector)) { newItem.Add(field.Selector, item[field.Selector]); } } if (newItem.Any()) l.Add(newItem); } return l; }
public void TestMethod3() { Fetcher f = new Fetcher(); var result = f.Execute<dynamic>("http://jsonplaceholder.typicode.com/posts", new RestRequest()); //var resultset = result.Data as IEnumerable<dynamic>; var ruleSet = new ParserRules(); ruleSet.Fields.Add(new Field { Selector = "id" }); Parser p = new Parser(); var parseResult = p.Parse(result, ruleSet); var serialized = SimpleJson.SerializeObject(parseResult); }
public List <Dictionary <string, object> > Parse(IRestResponse <dynamic> responseToParse, ParserRules ruleset) { if (responseToParse.ResponseStatus != ResponseStatus.Completed) { throw new ApplicationException("Response was not [Completed]"); } if (responseToParse.Data == null) { throw new ApplicationException("Response data could not be parsed"); } var resultset = responseToParse.Data as IEnumerable <dynamic>; if (resultset == null) { throw new ApplicationException("Response data could not be identified as collection"); } List <Dictionary <string, object> > l = new List <Dictionary <string, object> >(); foreach (Dictionary <string, object> item in resultset) { var newItem = new Dictionary <string, object>(); foreach (var field in ruleset.Fields) { if (item.ContainsKey(field.Selector)) { newItem.Add(field.Selector, item[field.Selector]); } } if (newItem.Any()) { l.Add(newItem); } } return(l); }