# apply add number
{"p1": 10}
[{"p":["p1"], "na":100}]
{"p1":110}
{"p1": 10}
[{"p":["p1"], "na":-100}]
{"p1":-90}
{"p1": 0.1}
[{"p":["p1"], "na":-0.1}]
{"p1":0.0}
{"p1": 10}
[{"p":["p1"], "t": "na", "o":100}]
{"p1":110}
{"p1": 10}
[{"p":["p1"], "t": "na", "o":-100}]
{"p1":-90}
{"p1": 0.1}
[{"p":["p1"], "t": "na", "o":-0.1}]
{"p1":0.0}
# apply text
{"p1": null}
[{"p":["p1"], "t": "text", "o": {"p":2, "i":"hello"}}]
{"p1":"hello"}
{"p1": null}
[{"p":["p1"], "t": "text", "o": {"p":2, "d":"hello"}}]
{"p1":null}
{}
[{"p":["p1"], "t": "text", "o": {"p":2, "i":"hello"}}]
{"p1":"hello"}
{}
[{"p":["p1"], "t": "text", "o": {"p":2, "d":"hello"}}]
{}
{"p1": "Mr. J"}
[{"p":["p1"], "t": "text", "o": {"p":5, "i":", hello"}}]
{"p1": "Mr. J, hello"}
{"p1": "Mr. J"}
[{"p":["p1"], "t": "text", "o": {"p":0, "i":"hello, "}}]
{"p1": "hello, Mr. J"}
{"p1": "AB"}
[{"p":["p1"], "t": "text", "o": {"p":1, "i":" Middle "}}]
{"p1": "A Middle B"}
# object insert
{}
[{"p":["p1"], "oi":{"p2":{}}}]
{"p1":{"p2":{}}}
{}
[{"p":["p1"], "oi":200}]
{"p1":200}
{"x":"a"}
[{"p":["y"],"oi":"b"}]
{"x":"a","y":"b"}
{"p1":{"p2":{}}}
[{"p":["p1", "p2"], "oi":{"p3":[1, {"p4":{}}]}}]
{"p1":{"p2":{"p3":[1,{"p4":{}}]}}}
{"p1":{"p2":{"p3":[1,{"p4":{}}]}}}
[{"p":["p1", "p2", "p3", 1, "p4"], "oi":{"p5":[1, 2]}}]
{"p1":{"p2":{"p3":[1,{"p4":{"p5":[1,2]}}]}}}
{"p1":{"p2":{"p3":[1,{"p4":{"p5":[1,2]}}]}}}
[{"p":["p1", "p2", "p3", 1, "p4"], "oi":[3,4]}]
{"p1":{"p2":{"p3":[1,{"p4":[3,4]}]}}}
{}
[{"p":["p1"], "oi":"v2"}]
{"p1":"v2"}
# {"p1":"v2"}
# [{"p": ["p1", "p2"],"oi": "v1"}]
# {"p1":"v2"}
# object delete
## delete to deep inner object with number index in path
{"p1":{"p2":{"p3":[1,{"level41":[1,2], "level42":[3,4]}]}}}
[{"p":["p1", "p2", "p3", 1, "level41"], "od":[1, 2]}]
{"p1":{"p2":{"p3":[1,{"level42":[3,4]}]}}}
## delete to inner object
{"p1":{"p2":{"p3":[1,{"level42":[3,4]}]}}}
[{"p":["p1", "p2", "p3"], "od":[1,{"level41":[1,2], "level42":[3,4]}]}]
{"p1":{"p2":{}}}
# object replace
## replace deep inner object with number index in path
{"p1":{"p2":{"p3":[1,{"level41":[1,2], "level42":[3,4]}]}}}
[{"p":["p1", "p2", "p3", 1, "level41"], "oi":{"5":"6"}, "od":[1, 2]}]
{"p1":{"p2":{"p3":[1,{"level41":{"5":"6"},"level42":[3,4]}]}}}
## replace to inner object
{"p1":{"p2":{"p3":[1,{"level41":{"5":"6"},"level42":[3,4]}]}}}
[{"p":["p1", "p2"], "oi":"hello", "od":{"p3":[1,{"level41":[1,2], "level42":[3,4]}]}}]
{"p1":{"p2":"hello"}}
# list insert
## insert to empty array
{"p1": []}
[{"p":["p1", 0], "li":{"hello":[1]}}]
{"p1":[{"hello":[1]}]}
## insert to array
{"p1":[{"hello":[1]}]}
[{"p":["p1", 0], "li":1}]
{"p1":[1,{"hello":[1]}]}
## insert to inner array
{"p1":[1,{"hello":[1]}]}
[{"p":["p1", 1, "hello",1], "li":[7,8]}]
{"p1":[1,{"hello":[1,[7,8]]}]}
## append
{"p1":[1,{"hello":[1,[7,8]]}]}
[{"p":["p1", 10], "li":[2,3]}]
{"p1":[1,{"hello":[1,[7,8]]},[2,3]]}
# list delete
## delete from innser array
{"p1":[1,{"hello":[1,[7,8]]}]}
[{"p":["p1", 1, "hello", 1], "ld":[7,8]}]
{"p1":[1,{"hello":[1]}]}
## delete from inner object
{"p1":[1,{"hello":[1]}]}
[{"p":["p1", 1], "ld":{"hello":[1,[7,8]]}}]
{"p1":[1]}
# list replace
## replace from innser array
{"p1":[1,{"hello":[1,[7,8]]}]}
[{"p":["p1", 1, "hello", 1], "li":{"hello":"world"}, "ld":[7,8]}]
{"p1":[1,{"hello":[1,{"hello":"world"}]}]}
## replace from inner object
{"p1":[1,{"hello":[1,{"hello":"world"}]}]}
[{"p":["p1", 1], "li": {"hello":"world"}, "ld":{"hello":[1,[7,8]]}}]
{"p1":[1,{"hello":"world"}]}
# list move
## move left
{"p1":[1,{"hello":[1,[7,8], 9, 10]}]}
[{"p":["p1", 1, "hello", 2], "lm":1}]
{"p1":[1,{"hello":[1,9,[7,8],10]}]}
## move right
{"p1":[1,{"hello":[1,[7,8], 9, 10]}]}
[{"p":["p1", 1, "hello", 1], "lm":2}]
{"p1":[1,{"hello":[1,9,[7,8],10]}]}
## stay
{"p1":[1,{"hello":[1,[7,8], 9, 10]}]}
[{"p":["p1", 1, "hello", 1], "lm":1}]
{"p1":[1,{"hello":[1,[7,8],9,10]}]}