json.path.delete: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 3: | Line 3: | ||
|version=1.5.5 | |version=1.5.5 | ||
|description= | |description= | ||
Returns a [[JSON Array]] or [[JSON Object]] with deleted elements. These deletions are specified through the path parameter. Additional information on how to specify the path is availabe [https://github.com/json-path/JsonPath here]. | |||
|usage= | |usage= | ||
< | <syntaxhighlight lang="mtmacro" line> | ||
json.path.delete(json, path) | json.path.delete(json, path) | ||
</ | </syntaxhighlight> | ||
'''Parameters''' | '''Parameters''' | ||
Line 16: | Line 16: | ||
|examples= | |examples= | ||
Suppose we have the following nested json: | Suppose we have the following nested json: | ||
< | <syntaxhighlight lang="mtmacro" line> | ||
[h:troll = json.set("{}", "name", "Troll", "HP", 75, "Attacks", json.append("Claw", "Bite"))] | [h:troll = json.set("{}", "name", "Troll", "HP", 75, "Attacks", json.append("Claw", "Bite"))] | ||
[h:orc = json.set("{}", "name", "Orc", "HP", 13, "Attacks", json.append("Sword", "Punch"))] | [h:orc = json.set("{}", "name", "Orc", "HP", 13, "Attacks", json.append("Sword", "Punch"))] | ||
[h:monsters = json.set("{}", "Troll", troll, "Orc", orc)] | [h:monsters = json.set("{}", "Troll", troll, "Orc", orc)] | ||
</ | </syntaxhighlight> | ||
To delete the "Punch" attack of the Orc, we could write | To delete the "Punch" attack of the Orc, we could write | ||
< | <syntaxhighlight lang="mtmacro" line> | ||
[r: json.path.delete(monsters, "Orc.Attacks.[1]")] | [r: json.path.delete(monsters, "Orc.Attacks.[1]")] | ||
</ | </syntaxhighlight> | ||
or, alternatively, | or, alternatively, | ||
< | <syntaxhighlight lang="mtmacro" line> | ||
[r: json.path.delete(monsters, "Orc.Attacks[?(@ == 'Punch')]")] | [r: json.path.delete(monsters, "Orc.Attacks[?(@ == 'Punch')]")] | ||
</ | </syntaxhighlight> | ||
Either statement return the json without the "Punch", | Either statement return the json without the "Punch", | ||
<syntaxhighlight lang="mtmacro" line> | |||
{"Troll":{"name":"Troll","HP":75,"Attacks":["Claw","Bite"]},"Orc":{"name":"Orc","HP":13,"Attacks":["Sword"]}} | |||
</syntaxhighlight> | |||
}} | |||
[[Category:JSON Function]] | [[Category:JSON Function]] | ||
[[Category:JSON Path Function]] |
Latest revision as of 23:59, 15 March 2023
json.path.delete() Function
• Introduced in version 1.5.5
Returns a JSON Array or JSON Object with deleted elements. These deletions are specified through the path parameter. Additional information on how to specify the path is availabe here.
Usage
json.path.delete(json, path)
Parameters
json
- The json element to delete the value from.path
- The path of the values.
Examples
Suppose we have the following nested json:
[h:troll = json.set("{}", "name", "Troll", "HP", 75, "Attacks", json.append("Claw", "Bite"))]
[h:orc = json.set("{}", "name", "Orc", "HP", 13, "Attacks", json.append("Sword", "Punch"))]
[h:monsters = json.set("{}", "Troll", troll, "Orc", orc)]
To delete the "Punch" attack of the Orc, we could write
[r: json.path.delete(monsters, "Orc.Attacks.[1]")]
or, alternatively,
[r: json.path.delete(monsters, "Orc.Attacks[?(@ == 'Punch')]")]
Either statement return the json without the "Punch",
{"Troll":{"name":"Troll","HP":75,"Attacks":["Claw","Bite"]},"Orc":{"name":"Orc","HP":13,"Attacks":["Sword"]}}