2016-03-22 105 views
0

一段時間以來,一直在努力與這一個。JSON.Net解析自定義映射的JSON

我JSON的格式如下:

[ 
{ 
    "Q_LabelOne": { 
     "en": "Some English text", 
     "fr": "Some French" 
    } 
}, 
{ 
    "Q_LabelTwo": { 
     "en": "Some English text", 
     "fr": "Some French" 
    } 
} 
] 

然後,我有車型像這樣:

public class Resource 
{ 
    public string Label { get; set; } // where Label is basically "Q_LabelOne" 
    public string ValueEN { get; set; } 
    public string ValueFR { get; set; } 
} 

我將如何解析這個JSON在這樣的格式?

+0

如果您有機會修改類資源會更好的操作。 –

+1

你可以修改你的JSON嗎?哈希映射數組看起來很奇怪。你可能會更好地使用Keys作爲你的'Label'和Values作爲你的資源對象(En,Fr)。 – Ryan

+0

我需要該標籤可讀,因爲它是用戶在UI中使用的資源。 – Alexus

回答

0

將您的Resource類更改爲以下版本,以使用JSON.NET屬性映射值。然後用JsonConvert.DeserializeObject<List<Dictionary<string, Resource>>>(jsonString)解析JSON到List<Dictionary<string, Resource>>。這會給你一個帶有「Q_LabelOne」和「Q_LabelTwo」鍵的單項詞典列表,並且它們的值分別爲Resource

public class Resource 
{ 

    [JsonProperty("en")] 
    public string ValueEn { get; set; } 

    [JsonProperty("fr")] 
    public string ValueFr { get; set; } 
} 
+0

謝謝,這也可以完成這項工作,因爲當我實際將它映射到模型時,我可以稍後使用字典鍵。這適用於我;)雖然,我應該自己想過:D – Alexus