我有一个来自Google JSON库的JsonObject
列表,然后我需要调用一个接受来自Jackson库的JsonNode
对象的第三方库。
我对JSON没有太多的经验,并且已经阅读了有关JSON的内容,并且从this链接知道JsonNode
是一个抽象类,因此无法创建它,看起来我不得不使用ObjectNode
来存储/转换JsonObject
,但是这样做似乎需要一些解析。
有人可以帮我将JsonObject
转换为ObjectNode
吗?
答案 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);
}