4. Operations (操作)
4. Operations (操作)
操作对象 (Operation Object) 必须恰好包含一个 "op" 成员, 其值指示要执行的操作。其值必须是 "add", "remove", "replace", "move", "copy" 或 "test" 之一; 其他值都是错误。每个对象的语义定义如下。
此外, 操作对象必须恰好包含一个 "path" 成员。该成员的值是一个包含 JSON-Pointer 值 [RFC6901] 的字符串, 它引用目标文档 (Target Document) 中执行操作的位置 ("目标位置", Target Location)。
其他操作对象成员的含义由操作定义 (参见下面的子章节)。对于相关操作未明确定义的成员必须被忽略 (即, 操作将像未定义成员未出现在对象中一样完成)。
请注意, JSON 对象中成员的顺序并不重要; 因此, 以下操作对象是等效的:
{ "op": "add", "path": "/a/b/c", "value": "foo" }
{ "path": "/a/b/c", "op": "add", "value": "foo" }
{ "value": "foo", "path": "/a/b/c", "op": "add" }
操作应用于由 JSON 文档表示的数据结构, 即在进行任何反转义 (参见 [RFC4627], 第 2.5 节) 之后。