разница zjsonpatch приводит к плоскому формату для операции добавления

#java #json #jackson #json-patch #flipkart-api

Вопрос:

Я пытаюсь получить разницу в JSON, используя библиотеку zjsonpatch. Библиотека предоставляет результаты операций добавления, удаления и замены. Результаты будут такими, как и ожидалось.

Но для операции добавления выходные значения иногда представляют собой карту пар ключ/значение, как показано ниже. В этом случае путь также является элементом массива.

 {
  "op": "add",
  "path": "/Entity1/0/Entity2/Entity3/2",
  "value": {
    "Field1": "ABC",
    "Field2": "BBC",
    "Field3": 999
  }
}
 

Можно ли получить выходные данные в виде плоской структуры для каждого поля? как показано ниже

 [
  {
    "op": "add",
    "path": "/Entity1/0/Entity2/Entity3/2/Field1",
    "value": "ABC"
  },
  {
    "op": "add",
    "path": "/Entity1/0/Entity2/Entity3/2/Field2",
    "value": "BBC"
  },
  {
    "op": "add",
    "path": "/Entity1/0/Entity2/Entity3/2/Field3",
    "value": 999
  }
]
 

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

1. Я не знаю о zjsonpatch, но похоже, что вы могли бы просто преобразовать вывод самостоятельно так, как хотите? Зацикливайтесь и создавайте новый объект json для каждого поля, добавляя в каждое одни и те же данные (при добавлении поля в путь).

2. Спасибо @Vakio за предложение. Да, я сделал то же самое, но ищу, есть ли какая-либо функция/параметр, которые могут быть переданы в API и обеспечить ту же функциональность.