JsonObject添加属性 - 地图

时间:2014-03-16 18:40:57

标签: java json gson

我有一个名为Test的课程,其中包含String id字段和HashMap map,例如Map<String, String[]>Map<String, ArrayList<String>>Map<String, HashMap>(此处为第二个{{1} }}是HashMap一个)我有以下代码。

<String, Integer>

像这样,我想将Map添加到此。像JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("id", test.getId); 这样的添加无法正常工作,因为它会在开头和结尾添加&#34;(逗号)。有人可以告诉我这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:5)

JsonObject使用add方法添加基元,但只有一个add方法来添加复杂类型。这种方法需要JsonElement,这就是你必须要创建的东西。

JsonObject jsonObject = new JsonObject();
Gson gson = new Gson();
JsonElement jsonElement = gson.toJsonTree(test.getMap());
jsonObject.add("map", jsonElement);

我不知道你为什么这么做。在上一个问题中,我向您展示了如何从Test类生成完整的JSON。

您可以使用

gson.toJsonTree(test);

将JSON设为JsonElement,您可以将其转换为JsonObject