コード例 #1
0
ファイル: Parser.cs プロジェクト: BartDeVries/RESTGateway
        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;
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }