Используя Java, как добавить некоторый узел в существующий json в начале массива?

#java #json #jsonpath

Вопрос:

Приведенный ниже код вставляет поле «myvalue» в существующий JSON, но после пары «идентификатор» ключ-значение я хочу вставить значение в этот JSON, но перед полем «идентификатор».

 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"}]}]}
 

Комментарии:

1. Пожалуйста, отредактируйте свой вопрос, чтобы показать именно тот JSON, который вы хотите создать.

Ответ №1:

Вы можете это сделать:

         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();