0
我有以下Java類:如何解析JSON以使用Gson中的地圖列表?
public class ModuleParsed {
String id_component;
String id_instance;
Map<ModuleParam, ModuleParam> input;
Map<ModuleParam, List<ModuleParam>> output;
int id_paas;
}
和
public class ModuleParam {
String name;
Object type;
}
應該是什麼預期JSON解析它作爲一個List<ModuleParsed>
?
listModules = gson.fromJson(br, new TypeToken<List<ModuleParsed>>() {}.getType());
一切都很好,直到我介紹了輸入和輸出參數。
編輯
通過這樣做相反的過程中,我已經找到了JSON應該像
[
{
"id_component": "mod1",
"id_instance": "mod1_inst1",
"input": {
"moduleParam": {
"name": "param3",
"type": "obj3"
},
"moduleParam": {
"name": "param2",
"type": "obj2"
}
},
"id_paas": 1
},
{
"id_component": "mod2",
"id_instance": "mod2_inst1",
"input": {
"moduleParam": {
"name": "param3",
"type": "obj3"
},
"moduleParam": {
"name": "param2",
"type": "obj2"
}
},
"id_paas": 1
}
]
其中moduleParam要素是一樣的東西:[email protected]
無論怎樣,我的名字這些元素我得到以下錯誤:
Exception in thread "main" com.google.gson.JsonParseException: Expecting object found: "moduleParam"
如何使用Gson獲得ModuleParsed
類?
使用可變的複雜對象作爲'Map'鍵是一個非常糟糕的主意*尤其是因爲您沒有重寫equals和hashcode。您也會發現從它們生成可用的JSON非常困難。請參閱:http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/GsonBuilder.html#enableComplexMapKeySerialization() – 2013-03-05 22:46:06
@Brian,如果我只是使用Map,是否可能?而不是>? –
eskalera
2013-03-07 10:01:37