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)); } }
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); }