23

「roles」フィールドの配列値から「roleId2」要素を削除したい次の JSON ドキュメントがあります。

{
  "id" : 12345,
  "firstName": "SomeFirstName",
  "lastName": "SomeLastName",
  "roles":["roleId1", "roleId2", "roleId3"]
}

その要素を削除する JSON パッチ ドキュメントを作成するにはどうすればよいですか? 次の式は有効ですか?

{"op": "remove", "path":"/roles", "value": "roleId2"}

それとも、このように見えるべきでしょうか (ドキュメントの "roles" 値が配列であるため)。

{"op": "remove", "path":"/roles", "value": ["roleId2"]}

RFC 6902を読んでも、どちらが正しいかはわかりません。RFC では次の動作について言及されていますが、ここで関連するかどうかはわかりません。

配列から要素を削除する場合、指定されたインデックスより上の要素はすべて左に 1 つシフトされます。

4

2 に答える 2

15

配列からインデックス 1 の項目を削除する正しいパッチは次のとおりです。

{"op": "remove", "path": "/roles/1"}

JSFiddleで実際の例を参照してください( Fast-JSON-Patchを使用)

于 2014-12-13T11:40:05.490 に答える