| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 | [  {    "comment": "4.1. add with missing object",    "doc": { "q": { "bar": 2 } },    "patch": [ {"op": "add", "path": "/a/b", "value": 1} ],    "error":       "path /a does not exist -- missing objects are not created recursively"  },  {    "comment": "A.1.  Adding an Object Member",    "doc": {  "foo": "bar"},    "patch": [  { "op": "add", "path": "/baz", "value": "qux" }],    "expected": {  "baz": "qux",  "foo": "bar"}  },  {    "comment": "A.2.  Adding an Array Element",    "doc": {  "foo": [ "bar", "baz" ]},    "patch": [  { "op": "add", "path": "/foo/1", "value": "qux" }],    "expected": {  "foo": [ "bar", "qux", "baz" ]}  },  {    "comment": "A.3.  Removing an Object Member",    "doc": {  "baz": "qux",  "foo": "bar"},    "patch": [  { "op": "remove", "path": "/baz" }],    "expected": {  "foo": "bar"}  },  {    "comment": "A.4.  Removing an Array Element",    "doc": {  "foo": [ "bar", "qux", "baz" ]},    "patch": [  { "op": "remove", "path": "/foo/1" }],    "expected": {  "foo": [ "bar", "baz" ]}  },  {    "comment": "A.5.  Replacing a Value",    "doc": {  "baz": "qux",  "foo": "bar"},    "patch": [  { "op": "replace", "path": "/baz", "value": "boo" }],    "expected": {  "baz": "boo",  "foo": "bar"}  },  {    "comment": "A.6.  Moving a Value",    "doc": {  "foo": {    "bar": "baz",    "waldo": "fred"  },  "qux": {    "corge": "grault"  }},    "patch": [  { "op": "move", "from": "/foo/waldo", "path": "/qux/thud" }],    "expected": {  "foo": {    "bar": "baz"  },  "qux": {    "corge": "grault",    "thud": "fred"  }}  },  {    "comment": "A.7.  Moving an Array Element",    "doc": {  "foo": [ "all", "grass", "cows", "eat" ]},    "patch": [  { "op": "move", "from": "/foo/1", "path": "/foo/3" }],    "expected": {  "foo": [ "all", "cows", "eat", "grass" ]}  },  {    "comment": "A.8.  Testing a Value: Success",    "doc": {  "baz": "qux",  "foo": [ "a", 2, "c" ]},    "patch": [  { "op": "test", "path": "/baz", "value": "qux" },  { "op": "test", "path": "/foo/1", "value": 2 }],    "expected": {     "baz": "qux",     "foo": [ "a", 2, "c" ]    }  },  {    "comment": "A.9.  Testing a Value: Error",    "doc": {  "baz": "qux"},    "patch": [  { "op": "test", "path": "/baz", "value": "bar" }],    "error": "string not equivalent"  },  {    "comment": "A.10.  Adding a nested Member Object",    "doc": {  "foo": "bar"},    "patch": [  { "op": "add", "path": "/child", "value": { "grandchild": { } } }],    "expected": {  "foo": "bar",  "child": {    "grandchild": {    }  }}  },  {    "comment": "A.11.  Ignoring Unrecognized Elements",    "doc": {  "foo":"bar"},    "patch": [  { "op": "add", "path": "/baz", "value": "qux", "xyz": 123 }],    "expected": {  "foo":"bar",  "baz":"qux"}  }, {    "comment": "A.12.  Adding to a Non-existent Target",    "doc": {  "foo": "bar"},    "patch": [  { "op": "add", "path": "/baz/bat", "value": "qux" }],    "error": "add to a non-existent target"  }, {    "comment": "A.13 Invalid JSON Patch Document",    "doc": {     "foo": "bar"    },    "patch": [  { "op": "add", "path": "/baz", "value": "qux", "op": "remove" }],    "error": "operation has two 'op' members",    "disabled": true  },  {    "comment": "A.14. ~ Escape Ordering",    "doc": {       "/": 9,       "~1": 10    },    "patch": [{"op": "test", "path": "/~01", "value": 10}],    "expected": {       "/": 9,       "~1": 10    }  },  {    "comment": "A.15. Comparing Strings and Numbers",    "doc": {       "/": 9,       "~1": 10    },    "patch": [{"op": "test", "path": "/~01", "value": "10"}],    "error": "number is not equal to string"  },  {    "comment": "A.16. Adding an Array Value",    "doc": {       "foo": ["bar"]    },    "patch": [{ "op": "add", "path": "/foo/-", "value": ["abc", "def"] }],    "expected": {      "foo": ["bar", ["abc", "def"]]    }  }]
 |