Как получить из 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; }
}
}