首页 > 解决方案 > 使用Java,如何在数组的开头将一些节点添加到现有的json?

问题描述

下面的代码将“myvalue”字段插入现有 JSON,但在“id”键值对之后,我想在此 JSON 中但在“id”字段之前插入一个值。

String originalJson="{"checkouts":[{"line_items":[{"id":"343f1f49d0ba7752b5ba84e0184384f4"}]}]}";
String modifiedJson= JsonPath.parse(originalJson)
                        .add("$.checkouts[0].line_items","myValue")
                        .jsonString();

上述代码的当前输出为:

{"checkouts":[{"line_items":[{"id":"343f1f49d0ba7752b5ba84e0184384f4"},"myValue"]}]}

但我想要这样的输出:

{"checkouts":[{"line_items":["myValue",{"id":"343f1f49d0ba7752b5ba84e0184384f4"}]}]}

标签: javajsonjsonpath

解决方案


你可以这样做:

        String originalJson="{\"checkouts\":[{\"line_items\":[{\"id\":\"343f1f49d0ba7752b5ba84e0184384f4\"}]}]}";
        DocumentContext json = JsonPath.parse(originalJson);
        JSONArray array = json.read("$.checkouts[0].line_items");
        array.add(0, "myValue");
        String modifiedJson= json
                .set("$.checkouts[0].line_items",array)
                .jsonString();

推荐阅读