2013-10-06 30 views
0

訪問JSON領域我想在一個JSON訪問畫面的某些地址,但字段名是一個數字,在C#中的號碼是不是有效的名稱爲變量...用數字鍵

我的JSON :

{ 
    "id":3441, 
    "name":"test", 
    "address": { 
    "1":"url.com\/45.jpg", 
    "2":"url.com\/23.jpg", 
    "3":"url.com\/65.jpg", 
    "4":"url.com\/789.jpg", 
    }, 
    "count":2 
} 

我在C#代碼:(HrmlResult是我的JSON)

dynamic stuff1 = Newtonsoft.Json.JsonConvert.DeserializeObject(HtmlResult); 
string address= stuff1.address;  //It Works 
string allPics = stuff1.pic;   //It Works 

firstPicTextBox.Text= stuff1.pic.1; //compiler Error 
secondPicTextBox.Text = stuff1.pic[2]; //runtime Error 

我應該怎麼做? 謝謝大家...

+0

有什麼錯誤? – David

+0

json中的'pic'在哪裏? –

回答

4

你必須創建帶有屬性的模型對象,就像你期望找到的json一樣。

然後,對於許多屬性,可以使用JsonProperty屬性命名屬性作爲數字,例如:

class MyModel { 
    [JsonProperty("2")] 
    public string Two {get; set;} 
} 

然後用DeserializeObject<MyModel>版本

這是簡化的例子,你的對象,你必須維護層次結構並可能有另一個「地址」屬性類,並將其用作主模型中的屬性類型。

0

如果您可以修改JSON,那就是您最好的選擇。你有什麼似乎應該是一個數組:

{ 
    "id":3441, 
    "name":"test", 
    "address":[ 
     "url.com\/45.jpg", 
     "url.com\/23.jpg", 
     "url.com\/65.jpg", 
     "url.com\/789.jpg" 
    ], 
    "count":2 
} 

從那裏,你的地址是一個簡單的字符串數組,而不是一個編號的鍵值對集合。