2015-07-20 64 views
-1

請幫我從這個JSON在C#中解析數組:如何用Newtonsoft.Json解析json數組?

{ 
     "error_code":0, 
     "response": 
     { 
      "17": 
       { 
        "id":"17","name":"Books" 
       }, 
      "21": 
       { 
        "id":"21","name":"Movies" 
       }, 
      "13": 
       { 
        "id":"13","name":"Cafe" 
       }, 
      "5": 
       { 
        "id":"5","name":"Music" 
       }, 
      "49": 
       { 
        "id":"49","name":"Theatres" 
       } 
     } 
    } 

我使用Newtonsoft.Json庫

+0

這不是一個數組,它的哪些屬性命名,而這恰好是數字的字符串對象。 – Jite

回答

1

這不是一個JSON陣列 - 它只是一個JSON 對象這恰好具有response對象屬性的編號。

你可以將它解析爲一個JObject,或將其反序列化到這樣一類:

public class Root 
{ 
    public int ErrorCode { get; set; } 
    public Dictionary<string, Entry> Response { get; set; } 
} 

public class Entry 
{ 
    public string Id { get; set; } 
    public string Name { get; set; } 
} 

... 

Root root = JsonConvert.DeserializeObject<Root>(json); 
+0

謝謝,喬恩!當我在Root類中將ErrorCode重命名爲「error_code」並將條目重命名爲「response」時,它就起作用了! – dvlpr

+0

@dvlpr:'Entries'應該是'Response',但應該是你所需要的 - 我期望Json.NET將error_code映射到ErrorCode。如果沒有,您可以始終應用適當的命名屬性。 –