2011-09-20 143 views
2

我正在寫一個Windows Phone應用程序,它將從服務器獲取一組數據並在列表框中顯示每個條目。Json反序列化到列表

的數據來自服務器看起來像這樣

{ 
    "data": [ 
    { 
     "value1": 777103069782066, 
     "value2": "SomeString", 
     "value3": "TextToDisplay1" 
    }, 
    { 
     "value1": 750050696652932, 
     "value2": "SomeString2", 
     "value3": "TextToDisplay2" 
    }, 
    { 
     "value1": 516092242936133, 
     "value2": "SomeString3", 
     "value3": "TextToDisplay3" 
    } 
    ] 
} 

我知道如何獲取數據到這樣

​​

一本字典,但它搗爛所有到一個字典條目(以預計,這就是全部)。

我想將「數據」中的所有列表項存儲在一個變量testList中 - 這樣我就可以從'testList'中訪問每個單獨的字典。我怎樣才能做到這一點?

對不起,如果問題是羅嗦。如果需要,我可以澄清。

謝謝,
克里斯

回答

0

你爲什麼不創建自己的數據類:

public class MyClass 
{ 
    public long value1; 
    public string value2; 
    public string value3; 
} 

然後反序列化這樣的:

Dictionary<string, IEnumerable<MyClass>> values = JsonConvert.DeserializeObject<Dictionary<string, IEnumerable<MyClass>>>(json); 

IEnumerable<MyClass>部分將是你的testList

UPD:在情況下,如果你想避免自定義對象使用類似

Dictionary<string, IEnumerable<Dictionary<string, string>>> values = 
    JsonConvert.DeserializeObject<Dictionary<string, IEnumerable<Dictionary<string, string>>>>(json); 
+0

因爲我使用的數據來自一個JSON格式的服務器。我試圖避免讓我的所有數據項硬編碼,因爲服務器將來會改變它們。我真正想要做的就是將我的詞典鍵中的所有項目 - 「數據」轉換爲詞典列表。 – Chris