如何将JsonObject列表从Google json转换为Jackson的JsonNode对象

时间:2019-08-26 08:17:48

标签: java json jackson gson

我有一个来自Google JSON库的JsonObject列表,然后我需要调用一个接受来自Jackson库的JsonNode对象的第三方库。

我对JSON没有太多的经验,并且已经阅读了有关JSON的内容,并且从this链接知道JsonNode是一个抽象类,因此无法创建它,看起来我不得不使用ObjectNode来存储/转换JsonObject ,但是这样做似乎需要一些解析。

有人可以帮我将JsonObject转换为ObjectNode吗?

1 个答案:

答案 0 :(得分:1)

  

有人可以帮助我将JsonObject转换为ObjectNode吗?

可以通过以下代码实现:

private JsonNode toJsonNode(JsonObject jsonObject) throws IOException {
    return mapper.readTree(jsonObject.toString());
}

要转换回去,您可以使用:

private JsonObject toJsonObject(JsonNode jsonNode) throws IOException {
    String jsonString = mapper.writeValueAsString(jsonNode);
    JsonParser jsonParser = new JsonParser();
    return jsonParser.parse(jsonString).getAsJsonObject();
}

根据您的需求,对于更通用的解决方案,您可以考虑使用JsonElement而不是JsonObject。该代码与上面显示的代码非常相似:

private JsonNode toJsonNode(JsonElement jsonElement) throws IOException {
    return mapper.readTree(jsonElement.toString());
}
private JsonElement toJsonElement(JsonNode jsonNode) throws IOException {
    String jsonString = mapper.writeValueAsString(jsonNode);
    JsonParser jsonParser = new JsonParser();
    return jsonParser.parse(jsonString);
}