json.path.put

From RPTools Wiki
Revision as of 23:36, 9 February 2023 by Conversion script (talk | contribs) (Conversion script moved page Json.path.put to json.path.put: Converting page titles to lowercase)
Jump to navigation Jump to search

json.path.put() Function

Introduced in version 1.5.5
Create or update the key with the given value at the given path of a nested JSON Object. json.path.put() is only used creating/updating name/value pairs in JSON Objects. See json.path.set() for creating/updated values in arrays. Additional information on how to specify the path is available here.

Usage

json.path.put(json, path, key, value)

Parameters

  • json - The json element in which the JSON Object is nested.
  • path - The path to the JSON Object.
  • key - The key of the JSON Object.
  • value - The value to associated with the key.

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)]

Which looks like this:

{
  "Troll":   {
    "name": "Troll",
    "HP": 75,
    "Attacks":     [
      "Claw",
      "Bite"
    ]
  },
  "Orc":   {
    "name": "Orc",
    "HP": 13,
    "Attacks":     [
      "Sword",
      "Punch"
    ]
  }
}

To add a new "AC" value to the troll, we could write

[h: monsters = json.path.put(monsters, "Troll", "AC", 12)]
<pre>[r: json.indent(json.get(monsters,"Troll"),2)]</pre>

And see this:

{
  "name": "Troll",
  "HP": 75,
  "Attacks":     [
    "Claw",
    "Bite"
  ]
  "AC": 12
}