json.fields: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
m (Applied Template:MacroFunction)
No edit summary
 
(8 intermediate revisions by 5 users not shown)
Line 3: Line 3:
|version=1.3b49
|version=1.3b49
|description=
|description=
Returns the fields (keys) for a json object or the indexes for a json array as a string list. The type of the value returned depends on the delimiter parameter.  
Returns the fields (keys) for a [[JSON Object]] or the indexes for a [[JSON Array]] as a string list. The type of the value returned depends on the delimiter parameter.  
* If the delimiter is not specified then a [[Macros:string list|string list]] is returned with the default value of ',' is used.
 
* If the delimiter ''"json"'' then a [[Macros:json array|json array]] is returned.
<u>Note</u>: Because [[JSON Object]]s are unordered, ''json.fields'' will not reflect the order they were set in.
* Otherwise a [[Macros:string list|string list]] is returned with the delimiter passed in.


|usage=
|usage=
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: strList = json.fields(jobj)]
json.fields(jobj)
[h: strList = json.fields(jobj, delim)]
</syntaxhighlight>
[h: jobj = json.fields(jobj, 'json')]
<syntaxhighlight lang="mtmacro" line>
</source>
json.fields(jobj, delim)
</syntaxhighlight>
 
'''Parameters'''
* {{code|delim}} =
** {{code|unspecified}}: a standard [[Macros:string list|string list]] is returned, with its default {{code|","}} delimiter.
** {{code|"json"}}: a [[JSON Array]] is returned.
** {{code|"x"}}: a [[Macros:string list|string list]] is returned with {{code|"x"}} used as a delimiter.


|example=
|example=
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
  [h:a=json.fromStrProp("a=1;b=44;c=12")] [r:json.fields(a)]
[h: a=json.fromStrProp("a=1;b=44;c=12")]
   [h:a=json.fromList("a,1,g,4")][r:json.fields(a)]
[r: json.fields(a)]
  [h:a=json.fromStrProp("a=1;b=44;c=12")] [r:json.fields(a, "json")]
</syntaxhighlight>
</source>
Returns
   a,b,c
 
 
<syntaxhighlight lang="mtmacro" line>
[h: a=json.fromList("a,1,g,4")]
[r: json.fields(a,";")]
</syntaxhighlight>
Returns
  0;1;2;3
 


<syntaxhighlight lang="mtmacro" line>
[h: a=json.fromStrProp("a=1;b=44;c=12")]
[r: json.fields(a, "json")]
</syntaxhighlight>
Returns
Returns
  a,c,b
   ["a","b","c"]
  0,1,2,3
   ["a","c","b"]
}}
}}
[[Category:JSON Function]]
[[Category:JSON Function]]

Latest revision as of 17:49, 15 March 2023

json.fields() Function

Introduced in version 1.3b49
Returns the fields (keys) for a JSON Object or the indexes for a JSON Array as a string list. The type of the value returned depends on the delimiter parameter. Note: Because JSON Objects are unordered, json.fields will not reflect the order they were set in.

Usage

json.fields(jobj)
json.fields(jobj, delim)

Parameters

  • delim =
    • unspecified: a standard string list is returned, with its default "," delimiter.
    • "json": a JSON Array is returned.
    • "x": a string list is returned with "x" used as a delimiter.

Example

[h: a=json.fromStrProp("a=1;b=44;c=12")]
[r: json.fields(a)]

Returns

 a,b,c


[h: a=json.fromList("a,1,g,4")]
[r: json.fields(a,";")]

Returns

 0;1;2;3


[h: a=json.fromStrProp("a=1;b=44;c=12")]
[r: json.fields(a, "json")]

Returns

["a","b","c"]