52

jsonを含む文字列をHashMapに変換する方法はありますか?すべてのキーはjson-keyであり、値はjson-keyの値です。jsonにはネストされた値はありません。私はGsonライブラリを使用しています。

たとえば、JSONが与えられた場合:

{
"id":3,
"location":"NewYork"
}

結果のHashMap:

<"id", "3">
<"location", "NewYork">

ありがとう

4

3 に答える 3

116

GSON FAQTypeTokenに従って、 を使用します。

Gson gson = new Gson();
Type stringStringMap = new TypeToken<Map<String, String>>(){}.getType();
Map<String,String> map = gson.fromJson(json, stringStringMap);

キャスティングなし。不要なオブジェクトの作成はありません。

于 2013-02-18T20:12:49.933 に答える
9

Map< Enum , Object>で TypeToken ソリューションを使用すると、「重複キー: null」が表示されます。

私にとって最良の解決策は次のとおりです。

String json = "{\"id\":3,\"location\":\"NewYork\"}";
Gson gson = new Gson();
Map<String, Object> map = new HashMap<String, Object>();
map = (Map<String, Object>)gson.fromJson(json, map.getClass());

結果:

{id=3.0, location=NewYork}
于 2014-02-25T08:37:29.873 に答える
2

好き:

private static class MyMap extends HashMap<String,String> {};
...
MyMap map = gson.fromJson(json, MyMap.class);
于 2016-03-07T20:42:38.920 に答える