将JsonObject从Google转换为JsonNode再转换为Jackson,然后将多个JsonNode作为数组传递给Web服务

时间:2019-08-02 05:55:08

标签: java json

我有一个具有JsonObject列表并使用google GSON库的应用程序。我需要将此列表发送到另一个服务,该服务使用Jackson库进行JSON序列化和反序列化,该服务提取每个JsonObject并进行一些处理。

我有处理JSON的经验,使用Jersey资源中的JsonNode的jackson进入我的Web服务。但是在这种情况下,它将是一个JsonNode数组。

[
    {
        "id" : 1,
        "firstName": "hello",
        "lastName": "world"
    },
    {
        "id" : 2,
        "firstName": "first",
        "lastName": "last"
    }
]

所以我的问题是使用Jackson的哪种数据类型,我应该能够处理JsonNode的数组吗?

1 个答案:

答案 0 :(得分:0)

找到了解决方案,我们可以使用相同的JsonNode处理JSON数组,然后可以使用JsonNode的size方法来确定JsonArray中有多少个元素类型为JsonNode

代码示例:

public void test(JsonNode jsonNode) throws IOException {
        int size = jsonNode.size();
        HashMap<String, String> map = new HashMap<>();
        while (size > 0) {
            JsonNode message = jsonNode.get(--size);
            map.put(message.get("id").toString(), message.toString());
        }

}