使用Java(8)中的JsonPath创建/添加节点和数组

问题描述 投票:0回答:1

我正在尝试使用JsonArray中的新key:value节点创建或更新JSON。到目前为止,我可以使用节点映射来添加简单的值,但是无法添加数组。

目标是使用以下值创建JSON字符串:

{
    "curfew": [{
        "enabled": true,
        "lock_time": "00:00",
        "unlock_time": "00:10"
    },
    {
        "enabled": true,
        "lock_time": "00:20",
        "unlock_time": "00:30"
    }]
}

从新的空JSON开始,然后添加更多值(例如第二个“宵禁”数组)。

Map<String, Object> values = ImmutableMap.of(
                                    "enabled", true,
                                    "lock_time", "00:00",
                                    "unlock_time", "00:10");
String emptyJson = "{}"; //empty json
DocumentContext doc = getDocument(emptyJson)
doc.set(JsonPath.compile("$.curfew"), values).jsonString();

到目前为止,我得到了这个(没有阵列)

{
    "curfew": {
        "enabled": true,
        "lock_time": "00:00",
        "unlock_time": "05:00"
    }
}
java jsonpath rest-assured-jsonpath
1个回答
0
投票
List<Map<String, Object>> list = new ArrayList<>();
list.add(values);
...
doc.set(JsonPath.compile("$.curfew"), list).jsonString();
© www.soinside.com 2019 - 2024. All rights reserved.