4. Operations
4. 操作 (Operations)
操作对象 (operation object) MUST 恰好有一个 "op" 成员, 其值指示要执行的操作. 该值 MUST 是 "add", "remove", "replace", "move", "copy", 或 "test" 之一; 其他值均为错误. 每种对象的语义定义如下.
此外, 操作对象 MUST 恰好有一个 "path" 成员. 该成员的值是一个包含 JSON-Pointer 值 [RFC6901] 的字符串, 引用目标文档内执行操作的位置 (即 "目标位置 (target location)").
其他操作对象成员的含义由具体操作定义 (见下面各小节). 对于相关操作未显式定义的成员 MUST 被忽略 (即该操作会像未定义成员没有出现在对象中一样完成).
注意, 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], Section 2.5) 之后应用.