json.path.read: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
(Created page with "{{MacroFunction |name=json.path.read |version=1.5.5 |description= Returns the values in a nested JSON Array or JSON Object corresponding to the provided path. For deta...")
 
No edit summary
Line 49: Line 49:


[[Category:JSON Function]]
[[Category:JSON Function]]
[[Category:JSON Path Function]]

Revision as of 19:18, 19 September 2019

json.path.read() Function

Introduced in version 1.5.5
Returns the values in a nested JSON Array or JSON Object corresponding to the provided path. For detailed information on how to specify the path, please read the following document.

Usage

json.path.read(json, path)

Parameters

  • json - The json element to get the values 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 access the value of the first weapon of the Orc, we can type

[json.path.read(monsters, "Orc.Attacks.[0]")]

which returns "Sword".

If we instead wanted to return an array with the attacks of every monster, we could type

[r: json.path.read(monsters, ".Attacks")]

which would return [["Claw","Bite"],["Sword","Punch"]].

Inline filters are also supported, so that if we want the name of the monsters with > 30 HPs, we can type

[r: json.path.read(monsters, ".[?(@.HP > 30)].name")]
which returns ["Troll"].