2016-05-19 8 views
1

モシHashMapのハッシュマップに私は、JSON持っている配列をdeserialiseすることが可能である場合、私は知らないデシリアライザ

"additionalProperties": [ 
{ 
    "$type": "Tfl.Api.Presentation.Entities.AdditionalProperties, Tfl.Api.Presentation.Entities", 
    "category": "Description", 
    "key": "TerminalName", 
    "sourceSystemKey": "BikePoints", 
    "value": "200017", 
    "modified": "2016-05-19T12:02:39.82" 
} 
........ 
] 

とそのJSONのために私がリスト持っている:

private List<AdditionalProperties> additionalProperties; 

すべての作品完璧なしかし、どのキーが「キー」(TerminalName)」

private HashMap<String,AdditionalProperties> additionalProperties; 
+0

JSON配列の 'additionalProperties'の最初のオブジェクトが' AdditionalProperties'オブジェクトの1つなのですか?そして、あなたは 'key'の文字列を引き出し、あなたの' Map'の中のオブジェクト全体のキーを作りたいと思っていますか?その場合、最も簡単な方法は、おそらく中間オブジェクトを作成し、 '@ ToJson'と' @ FromJson'という注釈付きメソッドでそれを変換することでしょう。 https://github.com/square/moshi/blob/master/README.md#another-exampleをご覧ください。 –

答えて

2

モシを012として宣言されたフィールドをサポートしているのHashMapでいるJSONを保存しますではなく、HashMapではありません。このようにして、MoshiはMapの異なる実装を使用することができます。これは、デコードされたJSONに対してHashMapよりも適切です。あなたのフィールドのタイプをMap<String,AdditionalProperties>に変更するとうまくいくはずです。

関連する問題