json.set: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
(Added part about explicitly setting JSON Array variable to equal the result of the json.set to "permanently" store the change.)
No edit summary
 
(9 intermediate revisions by 4 users not shown)
Line 6: Line 6:


|usage=
|usage=
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
json.set(jarr, index, value)
newarr=json.set(jarr, [])
</source>
</syntaxhighlight>
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
json.set(jarr, index, value, ..., ...)
newarr=json.set(jarr, index, value)
</source>
</syntaxhighlight>
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
json.set(jobj, key, value)
newarr=json.set(jarr, index, value, ..., ...)
</source>
</syntaxhighlight>
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
json.set(jobj, key, value, ..., ...)
newobj=json.set(jobj, key, value)
</source>
</syntaxhighlight>
<syntaxhighlight lang="mtmacro" line>
newobj=json.set(jobj, key, value, ..., ...)
</syntaxhighlight>
'''Parameters'''
'''Parameters'''
{{param|jarr|The [[JSON Array]] that has an index's value set.}}
{{param|jarr|The [[JSON Array]] that has an index's value set.}}
Line 26: Line 29:


'''Note:''' The {{code|index}} and {{code|value}} parameters or {{code|key}} and {{code|value}} parameters can be repeated in pairs.
'''Note:''' The {{code|index}} and {{code|value}} parameters or {{code|key}} and {{code|value}} parameters can be repeated in pairs.
'''Note:''' {{code|newarr}} or {{code|newobj}} can be equal to {{code|jarr}} or {{code|jobj}}. In this case, the object/array will simply be updated.
'''Note:''' The word "class" is a reserved word in JavaScript; it is therefore not possible to create a JSON object containing a ''key'' named "Class," "class," or any mix of upper- and lower-case. MapTool will ignore any instructions to set a JSON object key with that name.




|example=
|example=
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
   [json.set("{}", "a", 5)]
   [json.set("{}", "a", 5)]
   [json.set("", "a", 5, "b", 8)]
   [json.set("", "a", 5, "b", 8)]
   [json.set(json.fromList("1,3"), 0, 8)]
   [json.set(json.fromList("1,3"), 0, 8)]
</source>
</syntaxhighlight>


Returns
Returns
Line 42: Line 49:
To save the new value in the [[JSON Array]] or [[JSON Object]] so that you can reference it later in a macro, you must set the array equal to the result of json.set().
To save the new value in the [[JSON Array]] or [[JSON Object]] so that you can reference it later in a macro, you must set the array equal to the result of json.set().


<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
   [myArray = json.append("", 1, 2, 3)]
   [myArray = json.append("", 1, 2, 3)]
   [myArray = json.set(myArray, 0, 5)]
   [myArray = json.set(myArray, 0, 5)]
   [myArray]
   [myArray]
</source>
</syntaxhighlight>


Returns
Returns

Latest revision as of 16:41, 15 March 2023

json.set() Function

Introduced in version 1.3b49
Sets the value in at the specified index in a JSON Array or for the specified key in a JSON Object. You can use an empty string ("") to represent a new JSON Array or JSON Object.

Usage

newarr=json.set(jarr, [])
newarr=json.set(jarr, index, value)
newarr=json.set(jarr, index, value, ..., ...)
newobj=json.set(jobj, key, value)
newobj=json.set(jobj, key, value, ..., ...)

Parameters

  • jarr - The JSON Array that has an index's value set.
  • index - The numeric index which has its value set.
  • jobj - The JSON Object that has a key's value set.
  • key - The named key which has its value set.
  • value - The content that is set to the index or key.

Note: The index and value parameters or key and value parameters can be repeated in pairs.

Note: newarr or newobj can be equal to jarr or jobj. In this case, the object/array will simply be updated.

Note: The word "class" is a reserved word in JavaScript; it is therefore not possible to create a JSON object containing a key named "Class," "class," or any mix of upper- and lower-case. MapTool will ignore any instructions to set a JSON object key with that name.

Example

  [json.set("{}", "a", 5)]
  [json.set("", "a", 5, "b", 8)]
  [json.set(json.fromList("1,3"), 0, 8)]

Returns

 {"a":5}
 {"a":5, "b":8}
 [8, 3]

To save the new value in the JSON Array or JSON Object so that you can reference it later in a macro, you must set the array equal to the result of json.set().

   [myArray = json.append("", 1, 2, 3)]
   [myArray = json.set(myArray, 0, 5)]
   [myArray]

Returns

  [1,2,3] 
  [5,2,3] 
[5,2,3]

See Also