2015-09-20 117 views
1

我編寫了一個應用程序,用於將新數據從人員導入數據庫。我得到的數據位於網絡上,工作正常。使用隨機JSON節點

我用以下結構的工作:

{ 
    "users": [ 
    { 
     "firstname": "John", 
     "lastname": "Doe", 
     "id": "1", 
     "rfid": "BCDA412EA" 
    }, 
    { 
     "firstname": "Jane", 
     "lastname": "Doe", 
     "id": "2", 
     "rfid": "DA412EBCA" 
    } 
    ] 
} 

但是,我得到了一個新的「結構」,我不能處理。新節點是隨機生成的值?我怎樣才能訪問這些?

新JSON看起來是這樣的:

{ 
    "page": 0, 
    "page_size": 200, 
    "total_count": 5, 
    "count": 5, 
    "data": { 
     "ab90708-ded183ab37b55-623f-42ae-ae51": { 
      "firstname": "John", 
      "lastname": "Doe", 
      "created_at": "2015-09-16T15:51:39Z", 
      "tags": [ 
       "803504", 
       "80363004", 
       "8436E64", 
       "test123" 
      ] 
     }, 
     "34ba-0619-4ed8-bf168d2a-ce3af684a2b0": { 
      "firstname": "Stefan", 
      "lastname": "Baloh", 
      "created_at": "2015-09-16T15:51:40Z", 
      "tags": [ 
       "8034E26A4B0034004", 
       "F3626A4B0034035" 
      ] 
     } 
    } 
} 

它甚至有可能與這種結構的工作?

+0

您需要向我們展示您當前的代碼,告訴我們您嘗試過的。有很多不同的方法來做到這一點。 – Jeroen

+0

我如何以及如何嘗試使用json:http://pastebin.com/f2KsZ6cJ - 我不知道應該如何處理像這樣的隨機名稱。我試過 json以及javascript組件 – daniel

+0

你使用了什麼serializer/web API?查看[Json序列化器在ASP.NET和其他](http://techblog.dorogin.com/2012/05/json-serializers-in-aspnet-and-other.html)的可能性。基本上,使用Json.NET和'JavaScriptSerializer'很容易處理,而使用WCF + DataContractJsonSerializer'則更加困難。 – dbc

回答

1

你可以聲明你的類作爲

public class User 
{ 
    public string firstname { get; set; } 
    public string lastname { get; set; } 
    public string created_at { get; set; } 
    public List<string> tags { get; set; } 
} 

public class RootObject 
{ 
    public int page { get; set; } 
    public int page_size { get; set; } 
    public int total_count { get; set; } 
    public int count { get; set; } 
    public Dictionary<string, User> data { get; set; } 
} 

和反序列化的(使用Json.Net

var obj = JsonConvert.DeserializeObject<RootObject>(json); 
foreach(var user in obj.data.Values) 
{ 
    Console.WriteLine(user.lastname); 
} 

這裏的關鍵字是這些隨機名稱中使用Dictionary<string,...> ..

+0

請考慮爲'JsonConvert'添加一些名稱空間信息。它不在覈心.Net中,即使它是我們所熟知的Newtonsoft。 – quetzalcoatl