2017-12-22 4 views
1

私は書かなかったAPIを呼び出すためのクラスをいくつか書いています。 APIは、不思議なソートの書かれており、このようになりますいくつかのデータを持っていました:Json.netカスタム辞書形式

{ 
    "AB": 20, 
    "CD": 15 
} 

は私が一致するためにマッピングすることができるものはあります:私は、一般的な辞書がそうのようにシリアライズだろう知っている

[ 
    { 
     "AB": 20 
    }, 

    { 
     "CD": 15 
    } 
] 

を彼らはカスタムコードの束を書く必要なく書いたことは何ですか?そのようなJSONを解析し、すべてのキー/値を含むDictionaryを取得する

+0

キー値のペアの一般的なリストを試してください。 'List >' – Igor

+1

KeyValuePairのリストは機能しませんでしたが、Dictionaryのリストは機能しませんでした。私はそれを行い、それを単一の辞書にまとめるゲッターを作成するかもしれません。 – Dismissile

答えて

0

一つの方法は以下の通りである:

string json = @" 
[ 
    { 
     ""AB"": 20 
    }, 

    { 
     ""CD"": 15 
    }, 

    { 
     ""EF"": 35 
    } 
]"; 

JArray obj = JsonConvert.DeserializeObject<JArray>(json); 
var dict = obj.ToList() 
    .SelectMany(x => x.ToList()) 
    .Cast<JProperty>() 
    .ToDictionary(x => x.Name, x => x.Value); 

基本的には、すべての配列要素を平坦化し、各要素のうち、辞書を構築します。

関連する問題