今天在做项目的时候,需要把json转换为jsonObject,由于json格式不是固定的,还需要先把所有的键取出来,然后再遍历取值。

需要用到GSON,maven依赖为:

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>

首先把json字符串转换为jsonObject:

String json = "{ \"name\": \"Baeldung\", \"java\": true }";
JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();

Assert.assertTrue(jsonObject.isJsonObject());
Assert.assertTrue(jsonObject.get("name").getAsString().equals("Baeldung"));
Assert.assertTrue(jsonObject.get("java").getAsBoolean() == true);

然后再遍历jsonObject,取出所有的key:

Set<String> keySet = jsonObject.keySet();
for (String key : keySet) {
Object value = jsonObject.get(key);
}

这样就可以取出来了。

参考文献

[1].Convert String to JsonObject with Gson. ​​https://www.baeldung.com/gson-string-to-jsonobject​