2016-03-22 9 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を変更できますか?ハッシュマップの配列が奇妙に見えます。あなたは、キーがあなたの「ラベル」であり、値がリソースオブジェクト(En、Fr)であるハッシュマップを持つほうがよいかもしれません。 – Ryan

+0

UI内の人が使用するリソースであるため、そのラベルを読みやすくする必要があります。 – Alexus

答えて

0

リソースクラスを次のように変更して、JSON.NET属性を使用して値をマップするだけです。その後、List<Dictionary<string, Resource>>にJSONを解析してJsonConvert.DeserializeObject<List<Dictionary<string, Resource>>>(jsonString)とします。これにより、 "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

関連する問題