3. Document Structure
3. 文档结构 (Document Structure)
JSON Patch 文档是一个 JSON [RFC4627] 文档, 表示一个对象数组. 每个对象表示要应用到目标 JSON 文档的单个操作 (operation).
下面是一个示例 JSON Patch 文档, 它在 HTTP PATCH 请求中传输:
PATCH /my/data HTTP/1.1
Host: example.org
Content-Length: 326
Content-Type: application/json-patch+json
If-Match: "abc123"
[
{ "op": "test", "path": "/a/b/c", "value": "foo" },
{ "op": "remove", "path": "/a/b/c" },
{ "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] },
{ "op": "replace", "path": "/a/b/c", "value": 42 },
{ "op": "move", "from": "/a/b/c", "path": "/a/b/d" },
{ "op": "copy", "from": "/a/b/d", "path": "/a/b/e" }
]
JSON Patch 文档的求值从一个目标 JSON 文档开始. 各操作按它们在数组中出现的顺序依次应用. 序列中的每个操作都会应用到目标文档; 得到的文档会成为下一个操作的目标. 求值会持续进行, 直到所有操作均成功应用, 或遇到错误条件为止.