C#非标准JSON解析

时间:2016-09-30 15:33:41

标签: c# json json.net

我有一个奇怪的JSON响应字符串,格式如下:

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

通常我会在返回数组时返回Json数组(上面的Result值),如下所示:

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

但我不知道如何分解上面的字符串,以便我可以单独获取7个值并解析数组。有什么建议吗?

1 个答案:

答案 0 :(得分: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);

现在,您可以作为C#对象访问json响应中的字段。