2016-09-30 180 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,「Fields」:{「System」...我的意思通常和過去一樣,當我上次使用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

尼斯,這是一個非常方便的工具。我將編輯生成的代碼。 –