static void Test3()
        {
            string testStr   = File.ReadAllText("response.json");
            string testStrUn = File.ReadAllText("responseUnescape.json");

            //Newtonsoft.Json.Linq.JObject testRoot = JsonConvert.DeserializeObject<dynamic>(testStr);

            SberbankAST.JsonResponse myResponse = JsonConvert.DeserializeObject <SberbankAST.JsonResponse>(testStr);
            string myUnescape = Regex.Unescape(myResponse.data);

            SberbankAST.JsonRoot myRoot = JsonConvert.DeserializeObject <SberbankAST.JsonRoot>(myResponse.data);

            /*
             * string dataStr = testRoot.Last.Last.ToString();
             * //dataStr = Regex.Unescape(dataStr);
             * //dataStr = JsonConvert.DeserializeObject<string>(dataStr);
             * Newtonsoft.Json.Linq.JObject testData = JsonConvert.DeserializeObject<dynamic>(dataStr);
             * SberbankAST.Datarow myData = JsonConvert.DeserializeObject<SberbankAST.Datarow>(dataStr);
             */

            //string tookJson = myRoot.data;
            object dataJsonObj = JsonConvert.DeserializeObject <dynamic>(myRoot.data);

            SberbankAST.JsonResponseData dataJson = JsonConvert.DeserializeObject <SberbankAST.JsonResponseData>(myRoot.data);


            XmlSerializer ser = new XmlSerializer(typeof(SberbankAST.MyDataRow));

            SberbankAST.MyDataRow myDataRow = (SberbankAST.MyDataRow)ser.Deserialize(new StringReader(myRoot.tableXml));
        }
        static void Test4()
        {
            //Создаем запрос
            SberbankAST.SberbankAstRequest myReq = new SberbankAST.SberbankAstRequest("техническая жидкость");
            //SberbankAST.SberbankAstRequest myReq = new SberbankAST.SberbankAstRequest("");

            // получаем ответ строкой
            string testStr = myReq.GetResponse;

            // парсим первый уровень ответа (JSON)
            SberbankAST.JsonResponse myResponse = JsonConvert.DeserializeObject <SberbankAST.JsonResponse>(testStr);

            // парсим второй уровень ответа (JSON)
            SberbankAST.JsonRoot myRoot = JsonConvert.DeserializeObject <SberbankAST.JsonRoot>(myResponse.data);

            // парсим третий уровень (JSON)
            SberbankAST.JsonResponseData dataJson = JsonConvert.DeserializeObject <SberbankAST.JsonResponseData>(myRoot.data);

            // парсим третий уровень (XML)
            XmlSerializer ser = new XmlSerializer(typeof(SberbankAST.MyDataRow));

            SberbankAST.MyDataRow myDataRow = (SberbankAST.MyDataRow)ser.Deserialize(new StringReader(myRoot.tableXml));

            foreach (Hit hit in myDataRow.Hits)
            {
                Console.WriteLine(new SberbankAst(hit, myReq).ToString(false));
                Console.WriteLine(new SberbankAst(hit, myReq).ToString(true));
            }
        }
예제 #3
0
        protected override bool FillListResponse()
        {
            if (!base.FillListResponse())
            {
                return(false);
            }

            List <SberbankAst> curList = new List <SberbankAst>();
            JsonResponseData   dataJson;

            /*
             * string myWorkAnswer = MyRequest.GetResponse;
             * if (myWorkAnswer == null)
             *  return;
             */

            try
            {
                // парсим первый уровень ответа (JSON)
                JsonResponse myResp = JsonConvert.DeserializeObject <JsonResponse>(lastAnswer);

                // парсим второй уровень ответа (JSON)
                JsonRoot myRoot = JsonConvert.DeserializeObject <JsonRoot>(myResp.data);

                // парсим третий уровень (JSON)
                dataJson = JsonConvert.DeserializeObject <JsonResponseData>(myRoot.data);

                // ИЛИ

                /*
                 * // парсим третий уровень (XML)
                 * XmlSerializer ser = new XmlSerializer(typeof(MyDataRow));
                 * MyDataRow myDataRow = (MyDataRow)ser.Deserialize(new StringReader(myRoot.tableXml));
                 */
            }
            catch (Exception e)
            {
                lastError = e;
                return(false);
                //throw;
            }

            foreach (Hit hit in dataJson.Hits.Hits)
            {
                curList.Add(new SberbankAst(hit, MyRequest));
            }

            ListResponse = curList;
            return(true);
        }