1[ 2 { 3 "comment": "1", 4 "doc": { "foo": "bar"}, 5 "patch": [{ "op": "add", "path": "/baz", "value": "qux" }], 6 "expected": {"baz": "qux", "foo": "bar"} 7 }, 8 { 9 "comment": "2", 10 "doc": { "foo": [ "bar", "baz" ] }, 11 "patch": [{ "op": "add", "path": "/foo/1", "value": "qux" }], 12 "expected": {"foo": [ "bar", "qux", "baz" ] } 13 }, 14 { 15 "comment": "3", 16 "doc": {"baz": "qux","foo": "bar"}, 17 "patch": [{ "op": "remove", "path": "/baz" }], 18 "expected": {"foo": "bar" } 19 }, 20 { 21 "comment": "4", 22 "doc": { "foo": [ "bar", "qux", "baz" ] }, 23 "patch": [{ "op": "remove", "path": "/foo/1" }], 24 "expected": {"foo": [ "bar", "baz" ] } 25 }, 26 { 27 "comment": "5", 28 "doc": { "baz": "qux","foo": "bar"}, 29 "patch": [{ "op": "replace", "path": "/baz", "value": "boo" }], 30 "expected": {"baz": "boo","foo": "bar"} 31 }, 32 { 33 "comment": "6", 34 "doc": {"foo": {"bar": "baz","waldo": "fred"},"qux": {"corge": "grault"}}, 35 "patch": [{ "op": "move", "from": "/foo/waldo", "path": "/qux/thud" }], 36 "expected": {"foo": {"bar": "baz"},"qux": {"corge": "grault","thud": "fred"}} 37 }, 38 { 39 "comment": "7", 40 "doc": { "foo": [ "all", "grass", "cows", "eat" ] }, 41 "patch": [ { "op": "move", "from": "/foo/1", "path": "/foo/3" }], 42 "expected": { "foo": [ "all", "cows", "eat", "grass" ] } 43 }, 44 { 45 "comment": "8", 46 "doc": {"baz": "qux","foo": [ "a", 2, "c" ]}, 47 "patch": [{ "op": "test", "path": "/baz", "value": "qux" },{ "op": "test", "path": "/foo/1", "value": 2 }] 48 }, 49 { 50 "comment": "9", 51 "doc": { "baz": "qux" }, 52 "patch": [ { "op": "test", "path": "/baz", "value": "bar" }], 53 "error": "\"bar\" doesn't exist" 54 }, 55 { 56 "comment": "10", 57 "doc": { "foo": "bar" }, 58 "patch": [{ "op": "add", "path": "/child", "value": { "grandchild": { } } }], 59 "expected": {"foo": "bar","child": {"grandchild": {}}} 60 }, 61 { 62 "comment": "11", 63 "doc": { "foo": "bar" }, 64 "patch": [{ "op": "add", "path": "/baz", "value": "qux", "xyz": 123 }], 65 "expected": {"foo": "bar","baz": "qux"} 66 }, 67 { 68 "comment": "12", 69 "doc": { "foo": "bar" }, 70 "patch": [{ "op": "add", "path": "/baz/bat", "value": "qux" }], 71 "error": "Can't add to nonexistent object" 72 }, 73 { 74 "comment": "13", 75 "doc": {"/": 9,"~1": 10}, 76 "patch": [{"op": "test", "path": "/~01", "value": 10}] 77 }, 78 { 79 "comment": "14", 80 "doc": { "foo": ["bar"] }, 81 "patch": [ { "op": "add", "path": "/foo/-", "value": ["abc", "def"] }], 82 "expected": {"foo": ["bar", ["abc", "def"]] } 83 }, 84 85 { 86 "comment": "15", 87 "doc": {"foo": {"bar": 1}}, 88 "patch": [{"op": "add", "path": "/foo/bar/baz", "value": "5"}], 89 "error": "attempting to add to subfield of non-object" 90 } 91] 92