"settings": {
"key0": null,
"key1": "value1",
"key2": ["value21", "value22"],
"key3": {
"key30": null,
"key31": "value1",
"key32": ["value321", "value322"],
"key33": {
"key330": null
}
}
}
add value323
in key32
{
"patch": {
"settings": {
"key3": {
"key32": ["value321", "value322", "value323"]
}
}
}
}
{
"patch": {
"settings": [
{"op": "add", "path": "/key3/key32/-", "value": "value323"}
]
}
}
- need to enumerate all values
remove value322
in key32
{
"patch": {
"settings": {
"key3": {
"key32": ["value321", "value323"]
}
}
}
}
{
"patch": {
"settings": [
{"op": "remove", "path": "/key3/key32/1"}
]
}
}
- need to enumerate all values
set value301
for key301
{
"patch": {
"settings": {
"key3": {
"key30": {
"key301": "value301"
}
}
}
}
}
{
"patch": {
"settings": [
{
"op": "replace",
"path": "/key3/key30",
"value": {
"key301": "value301"
}
}
]
}
}
should the key301
exist or not ? -- overhead for implemetation logic
remove key32
{
"patch": {
"settings": {
"key3": {
"key30": null,
"key31": "value1",
"key33": {
"key330": null
}
}
}
}
{
"patch": {
"settings": [
{"op": "remove", "path": "/key3/key32"}
]
}
}
remove key32
and key0
{
"patch": {
"settings": {
"key1": "value1",
"key2": ["value21", "value22"],
"key3": {
"key30": null,
"key31": "value31",
"key33": {
"key330": null
}
}
}
}
{
"patch": {
"settings": [
{"op": "remove", "path": "/key0"},
{"op": "remove", "path": "/key3/key32"}
]
}
}
- need to enumerate another values
set value33
to null
{
"patch": {
"settings": {
"key3": {
"key33": null
}
}
}
}
{
"patch": {
"settings": [
{"op": "replace", "path": "/key3/key33", "value": null}
]
}
}
remove key32
and key0
{
"patch": {
"settings": {
"key1": "value1",
"key2": ["value21", "value22"],
"key3": {
"key30": null,
"key31": "value31",
"key33": {
"key330": null
}
}
}
}
key30: null -- what that mean ? need to remove old value or it's old value