Что такое формат JSON Patch для удаления элемента из массива?
У меня есть следующий документ JSON, из которого я хочу удалить элемент "roleId2" из значения массива поля "role":
{
"id" : 12345,
"firstName": "SomeFirstName",
"lastName": "SomeLastName",
"roles":["roleId1", "roleId2", "roleId3"]
}
Как я могу написать документ JSON Patch для удаления этого элемента? Является ли следующее выражение допустимым?
{"op": "remove", "path":"/roles", "value": "roleId2"}
Или это должно выглядеть следующим образом (потому что значение ролей в документе является массивом)?
{"op": "remove", "path":"/roles", "value": ["roleId2"]}
Из прочтения RFC 6902 мне не ясно, что, если да, правильно. RFC упоминает следующее поведение, но я не уверен, уместно ли оно здесь.
При удалении элемента из массива любые элементы выше указанного индекса сдвигаются на одну позицию влево.
1 ответ
Правильный патч для удаления элемента с индексом 1 из массива:
{"op": "remove", "path": "/roles/1"}
Смотрите рабочий пример в JSFiddle (используя Fast-JSON-Patch)
Это не поддерживается RFC 6902. Редакция possibile в формате JSON-Patch обсуждается, которые могут поддерживать на основе значений операций массива.