如何在java中将hashmaps的哈希值转换为json

时间:2013-07-30 07:58:25

标签: java json list hashmap gson

您好我有嵌套对象,包含哈希和列表。我正在尝试使用gson,但如果hashmaps中的值是hashmaps而不是简单的字符串,那么似乎效果不好。

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));

似乎运作良好。

2 个答案:

答案 0 :(得分:4)

它不起作用的原因是你把结果放在:new HashMap&lt;&gt;()。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”:“我正在做某事”}

答案 1 :(得分:0)

使用

 new JSONObject(map);

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