3

嗨,我有由散列和列表组成的嵌套对象。我正在尝试使用 gson,但如果哈希映射中的值是哈希映射而不是简单字符串,似乎效果不佳。

Map questionDetails = new HashMap<>();
questionDetails.put("label", descriptionNode.getText());
questionDetails.put("validations", new HashMap<>().put("compulsary", 1));
System.out.println(new Gson().toJson(questionDetails));

如果打印

{"label":"I am working on something"}

尽管

Map questionDetails = new HashMap<>();
questionDetails.put("label", descriptionNode.getText());
questionDetails.put("validations", "something");
System.out.println(new Gson().toJson(questionDetails));

似乎运作良好。

4

2 回答 2

4

它不起作用的原因是您放置了结果: new HashMap<>().put("compulsary", 1) 而不是 hasmap 本身。

questionDetails.put("validations", new HashMap<>().put("compulsary", 1));

做:

Map questionDetails = new HashMap<>();
questionDetails.put("label", descriptionNode.getText());
Map validations = new HashMap<>();
validations.put("compulsary", 1)
questionDetails.put("validations", validations);
System.out.println(new Gson().toJson(questionDetails));

{"validations":{"compulsary":1},"label":"我正在做某事"}

于 2013-07-30T08:09:31.197 回答
0

利用

 new JSONObject(map);

您可以从其文档 http://www.json.org/javadoc/org/json/JSONObject.html中获得其他功能

于 2013-07-30T08:00:17.673 回答