Как получить из JSON только нужные параметры? - C#

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

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

Проблема в том, что сервис выдает JSON не в читабельном формате, без переноса строк и т.д (пример ниже),а просто сплошной строкой, поэтому разбить на <key,value> не получается, но как то же можно распарсить эти данные. Нужны четыре параметра title, subid1, createdAtTime и profit. И конечно, строка может содержать массив данных любого размера. То есть (title, subid1, createdAtTime и profit) параметры не в единичном экземпляре, а их может быть сколько угодно.
{"status":200,"error":"","data":{"statsCount":3,"statsRequest":{"dayFrom":20140508,"dayTo":20140508},"statsType":"leads","stats":[{"id":1012127480694,"status":{"id":2,"title":"Отменен"},"profit":600,"createdAtTime":1399556704,"createdAtDate":"08.05.2014 17:45:04","lead":{"time":1399556704,"date":"08.05.2014 17:45:04","ip":"178.141.36.229","useragent":"Mozilla\/5.0 (Windows NT 5.1; rv:12.0) Gecko\/20100101 Firefox\/12.0"},"click":{"time":1399556531,"date":"08.05.2014 17:42:11","ip":"178.141.36.229","useragent":"Mozilla\/5.0 (Windows NT 5.1; rv:12.0) Gecko\/20100101 Firefox\/12.0"},"link":{"id":344222,"title":"Директ линк"},"subid1":"422108893","subid2":null,"offer":{"id":1034,"title":"Товары почтой: «Power Balance» - энергетический браслет"},"goal":{"id":1492,"title":"Подтвержденная заявка (Россия)"},"geo":{"country":"Россия","city":"Киров","region":"Кировская область"}},{"id":1012127516502,"status":{"id":2,"title":"Отменен"},"profit":600,"createdAtTime":1399570998,"createdAtDate":"08.05.2014 21:43:18","lead":{"time":1399570998,"date":"08.05.2014 21:43:18","ip":"46.158.141.68","useragent":"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.131 Safari\/537.36"},"click":{"time":1399570916,"date":"08.05.2014 21:41:56","ip":"46.158.141.68","useragent":"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.131 Safari\/537.36"},"link":{"id":344222,"title":"Директ линк"},"subid1":"422122859","subid2":null,"offer":{"id":1034,"title":"Товары почтой: «Power Balance» - энергетический браслет"},"goal":{"id":1492,"title":"Подтвержденная заявка (Россия)"},"geo":{"country":"Россия","city":"Краснодар","region":"Краснодарский край"}},{"id":1012127519017,"status":{"id":2,"title":"Отменен"},"profit":600,"createdAtTime":1399572928,"createdAtDate":"08.05.2014 22:15:28","lead":{"time":1399572928,"date":"08.05.2014 22:15:28","ip":"91.76.255.41","useragent":"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.132 Safari\/537.36 OPR\/21.0.1432.57"},"click":{"time":1399572915,"date":"08.05.2014 22:15:15","ip":"91.76.255.41","useragent":"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.132 Safari\/537.36 OPR\/21.0.1432.57"},"link":{"id":344222,"title":"Директ линк"},"subid1":"422131765","subid2":null,"offer":{"id":1034,"title":"Товары почтой: «Power Balance» - энергетический браслет"},"goal":{"id":1492,"title":"Подтвержденная заявка (Россия)"},"geo":{"country":"Россия","city":"Москва","region":"Москва"}}]},"docs":"API documentation located at http:\/\/developers.ad1.ru\/network\/v1\/WmStats"}

Решение задачи: «Как получить из JSON только нужные параметры?»

textual
Листинг программы
public class WmStats
    {
        public int status { get; set; }
        public string error { get; set; }
        public Data data { get; set; }
        public string docs { get; set; }
 
        public class Data
        {
            public int statsCount { get; set; }
            public StatsRequest statsRequest { get; set; }
            public string statsType { get; set; }
            public Stats[] stats { get;set;}
        }
        public class StatsRequest
        {
            public string dayFrom {get;set;}
            public string dayTo {get;set;}
        }
        public class Stats
        {
            public string id { get; set; }
            public Status status { get; set; }
            public double profit { get;set;}
            public string createdAtTime { get;set;}
            public string createdAtDate { get;set;}
            public Lead lead {get;set;}
            public Click click {get;set;}
            public Link link {get;set;}
            public string subid1 {get;set;}
            public string subid2 {get;set;}
            public Offer offer {get;set;}
            public Goal goal {get;set;}
            public Geo geo { get; set; }
        }
        public class Status
        {
             public int id { get; set; }
             public string title{get;set;}
        }
        public class Lead
        {
            public string time { get; set; }
            public string date{ get; set; }
            public string ip{ get; set; }
            public string useragent { get; set; }
                
        }
        public class Click
        {
            public string time { get; set; }
            public string date { get; set; }
            public string ip { get; set; }
            public string useragent { get; set; }
        }
        public class Link
        {
            public int id { get; set; }
            public string title { get; set; }
        }
        public class Offer
        {
            public int id { get; set; }
            public string title { get; set; }
        }
        public class Goal
        {
            public int id { get; set; }
            public string title { get; set; }
        }
        public class Geo
        {
            public string country { get; set; }
            public string city { get; set; }
            public string region { get; set; }
        }
    }

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


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

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

13   голосов , оценка 3.769 из 5
Похожие ответы