2016-09-30 2 views
0

Я странно сформулированная строка ответа JSON в этом формате:C# Нестандартных JSON синтаксического

{ 
    "Result": <this is the array of Ticket objects>, 
    "IsLastPage": true, 
    "NextSkip": 1, 
    "NextTake": 1, 
    "PageCount": 2, 
    "TotalCount": 3, 
    "QueryResultHash": "sample string 4" 
} 

Обычно я получить доступ к массиву JSon (значение Результата выше), когда массив является единственным возвращаются , например, так:

var jsonArray = JArray.Parse(resultString); 
foreach (var jsonObject in jsonArray) 
{ ... } 

Но я не знаю, как сломать выше строки, так что я могу получить 7 значений индивидуально и разобрать массив. Какие-либо предложения?

+0

Вы имеете в виду, что обычно вы получаете массив как единственный элемент в json? –

+1

На самом деле это похоже на json? I.E '<это массив объектов Ticket>' является фактическим значением? – Darren

+0

Нет, массив представляет собой правильно сформулированную строку, такую ​​как: {«Id»: 4412, «Rev»: 30, «Поля»: {«Система» ... и я имею в виду обычно, как в прошлом, когда я в последний раз работал с JSON –

ответ

1

Если возможно, я бы воспользовался библиотекой Newtonsoft.Json (https://www.nuget.org/packages/Newtonsoft.Json/).

Затем вы можете создать класс ResponseContainer. Нечто подобное,

//generated by http://json2csharp.com/ 
public class ResponseContainer 
{ 
    public List<object> Result { get; set; } 
    public bool IsLastPage { get; set; } 
    public int NextSkip { get; set; } 
    public int NextTake { get; set; } 
    public int PageCount { get; set; } 
    public int TotalCount { get; set; } 
    public string QueryResultHash { get; set; } 
} 

Затем вы можете сделать

JsonSerializer serializer = new JsonSerializer(); 
ResponseContainer response = serializer.Deserialize<ResponseContainer>(jsonString); 

Теперь вы можете получить доступ к полям в ответ JSON, как C# объекта.

+1

Вы можете использовать этот сайт [json2csharp] (http://json2csharp.com/), чтобы получить представление о вашей модели или контейнере, которая будет выглядеть как –

+0

Nice , это довольно удобный инструмент. Я отредактирую сгенерированный код. –