Парсинг Json строки в объект и массив - C#

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. {
  2. "json":[
  3. {
  4. "zayavki":[
  5. {
  6. "uuid":"562cea6c-663f-4322-94a3-fd67747209e3",
  7. "date":"11/06/2012",
  8. "coment":"",
  9. "firm_id":"20"
  10. }
  11. ]
  12. },
  13. {
  14. "tovar":[
  15. {
  16. "uuid":"562cea6c-663f-4322-94a3-fd67747209e3",
  17. "pricer":"152,
  18. 00 ",
  19. "kol":"5",
  20. "st_grup_id":"1885"
  21. }
  22. ]
  23. }
  24. ]
  25. }
Листинг программы
  1. string js = "{ "json" : [ { "zayavki" : [ { "uuid" : "562cea6c-663f-4322-94a3-fd67747209e3" , "date" : "11/06/2012" , "coment" : "" , "firm_id" : "20"} ]},{ "tovar" : [ {"uuid" : "562cea6c-663f-4322-94a3-fd67747209e3" , "pricer" : "152,00" , "kol" : "5" , "st_grup_id" : "1885" } ] } ] }";
  2. try
  3. {
  4. Newtonsoft.Json.Linq.JObject jObject = Newtonsoft.Json.Linq.JObject.Parse(js);
  5. Newtonsoft.Json.Linq.JToken json_token = jObject["json"][0];//токен на массив массивов
  6. players = json_token["zayavki"].ToArray();
  7. }
  8. catch (Exception e)
  9. {
  10. }
и выдает что то - Newtonsoft.Json.JsonReaderException: JsonToken EndArray is not valid for closing JsonType Object. Path 'json[0].zayavki[0]', line 1, position 140. в Newtonsoft.Json.JsonReader.ValidateEnd(JsonToken endToken) в Newtonsoft.Json.JsonTextReader.ParsePostValue() в Newtonsoft.Json.JsonTextReader.ReadInternal() в Newtonsoft.Json.JsonTextReader.Read() в Newtonsoft.Json.Linq.JContainer.ReadContentFrom(JsonReader r) в Newtonsoft.Json.Linq.JContainer.ReadTokenFrom(JsonReader reader) в Newtonsoft.Json.Linq.JObject.Load(JsonReader reader) в Newtonsoft.Json.Linq.JObject.Parse(String json) в WebService3.Service1.Send_data(String login, String password, String imei, String data) Вопрос что я делаю не так? Мне нужно пройти по массиву zayavki и получать значения итемов.

Решение задачи: «Парсинг Json строки в объект и массив»

textual
Листинг программы
  1. using System;
  2. using Newtonsoft.Json;
  3.  
  4. [JsonObject(MemberSerialization.OptIn)]
  5. struct MyJsonObject
  6. {
  7.     [JsonProperty("uuid")]
  8.     public string Uuid { get; set; }
  9.  
  10.     [JsonProperty("date")]
  11.     public DateTime Date { get; set; }
  12.  
  13.     [JsonProperty("comment")]
  14.     public string Comment { get; set; }
  15.  
  16.     [JsonProperty("firm_id")]
  17.     public string FirmID { get; set; }
  18. }
  19.  
  20.  
  21. class Program
  22. {
  23.     static void Main(string[] args)
  24.     {
  25.         string js = "{ \"json\" : [ { \"zayavki\" : [ { \"uuid\" : " +
  26.             "\"562cea6c-663f-4322-94a3-fd67747209e3\" , \"date\" " +
  27.             ": \"11/06/2012\" , \"coment\" : \"\" , \"firm_id\" : " +
  28.             "\"20\"} ]},{ \"tovar\" : [ {\"uuid\" : \"562cea6c-663f-" +
  29.             "4322-94a3-fd67747209e3\" , \"pricer\" : \"152,00\" , \"kol\" " +
  30.             ": \"5\" , \"st_grup_id\" : \"1885\" } ] } ] }";
  31.         Newtonsoft.Json.Linq.JObject obj = Newtonsoft.Json.Linq.JObject.Parse(js);
  32.         MyJsonObject[] objArr = JsonConvert.DeserializeObject<MyJsonObject[]>(obj["json"][0]["zayavki"].ToString());
  33.         foreach (MyJsonObject myJsonObj in objArr)
  34.         {
  35.             Console.WriteLine("Uuid: {0}", myJsonObj.Uuid);
  36.             Console.WriteLine("Date: {0}", myJsonObj.Date.ToString("dd/MM/yyyy"));
  37.             Console.WriteLine("Comment: {0}", myJsonObj.Comment);
  38.             Console.WriteLine("FirmID: {0}", myJsonObj.FirmID);
  39.             Console.WriteLine(new string('-', 10));
  40.         }
  41.         Console.ReadKey(true);
  42.     }
  43. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы