Как можно разобрать такой вид json при помощи C#?

Здравствуйте.

Есть простенький api, нужно получить и вывести на форму любое значение (допустим первое) "idnetrikalpu".

В качестве примера пробовал статью с форума и другие аналогичные статьи из этого же раздела.
Хабр и гугл.

К сожалению, так и не смог запустить парсинг.
public class Api
        {
            public int id { get; set; }
            public string idnetrikalpu { get; set; }
            public string decription { get; set; }
            public string district { get; set; }
            public string externallpuid { get; set; }
            public bool isactive { get; set; }
            public string lpufullname { get; set; }
            public string lpushortname { get; set; }
        }

        public class RootObject
        {
            public List<Api> api { get; set; }
        }

private async Task GetListOfFriends()
        {

            using (var w = new WebClient())
            {
                // Скачиваем строку АПИ (начало)
                w.Encoding = Encoding.UTF8;
                string resp1 = await w.DownloadStringTaskAsync("http://91.237.82.1/api/v1/netrikalpu/");
                // Скачиваем строку АПИ (конец)

                // Пытаемся привести JSON к канону(начало)
                string aaa = resp1.Replace("[", "{\"aaa\":[");
                string aaa1 = aaa.Replace("]", "]}");
                // Пытаемся привести JSON к канону(конец)

                // Парсим (начало)
                // Перенести затем внутрь исключения
                JObject obj = JObject.Parse(aaa1);
                RootObject[] objArr = JsonConvert.DeserializeObject<RootObject[]>(obj["aaa"][0]["lpufullname"].ToString());
                // Парсим (конец)

                label1.Text = aaa1.ToString().Substring(0, 10);



                try
                {
                    //label1.Text = objArr.ToString().Substring(0, 10);


                }
                catch (Exception e)
                {
                    label1.Text = "1111111";
                }

            }
        }


Можете подсказать, как быть?
  • Вопрос задан
  • 732 просмотра
Решения вопроса 1
@MonkAlex
C#, SQL, Delphi, C++ etc
Зачем что-то приводить?
Берете к примеру jsonutils.com и кормите ему свой json.
Он говорит, что это вполне валидный json и его можно парсить в лист таких вот классов:
public class Example
    {
        public int id { get; set; }
        public string idnetrikalpu { get; set; }
        public string decription { get; set; }
        public string district { get; set; }
        public string externallpuid { get; set; }
        public bool isactive { get; set; }
        public string lpufullname { get; set; }
        public string lpushortname { get; set; }
    }


Ну и, чтобы считать это всё :
var fb = new WebClient() {Encoding = Encoding.UTF8}.DownloadString("http://91.237.82.1/api/v1/netrikalpu/?format=json");
      var list = JsonConvert.DeserializeObject<List<Example>>(fb);

А уже из листа достаете что вам надо и куда надо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы