json.indexOf: Difference between revisions
Jump to navigation
Jump to search
(New page: {{MacroFunction |name=json.indexOf |version=1.3b53 |description= Returns the index of the first occurrence of a value in the JSON Array. If the value does not exist in the [[JSON Array...) |
No edit summary |
||
(7 intermediate revisions by 5 users not shown) | |||
Line 3: | Line 3: | ||
|version=1.3b53 | |version=1.3b53 | ||
|description= | |description= | ||
Returns the index of the first occurrence of a value in the [[JSON Array]]. If the value does not | Returns the index of the first occurrence of a value in the [[JSON Array]]. If the value does not exist in the [[JSON Array]] then {{code|-1}} is returned. All [[JSON Array]] indexes start at {{code|0}}. | ||
exist in the [[JSON Array]] then {{code|-1}} is returned. All [[JSON Array]] indexes start at {{code|0}}. | |||
|usage= | |usage= | ||
< | <syntaxhighlight lang="mtmacro" line> | ||
json.indexOf(array, value) | |||
</ | </syntaxhighlight> | ||
<syntaxhighlight lang="mtmacro" line> | |||
json.indexOf(array, value, start) | |||
</syntaxhighlight> | |||
'''Parameters''' | |||
{{param|array|The [[JSON Array]] to search.}} | |||
{{param|value|The value to find the index of in the [[JSON Array]].}} | |||
{{param|start|The index to start searching from, if not specified it defaults to {{code|0}}.}} | |||
< | |examples= | ||
[ | Find the index of the first occurrence of {{code|1}}: | ||
</ | <syntaxhighlight lang="mtmacro" line> | ||
[r: json.indexOf("[1,2,3,1,1,3]", 1)] | |||
</syntaxhighlight> | |||
Returns: {{code|0}} | |||
Find the index of the first occurrence of {{code|1}}, starting at index {{code|1}}: | |||
<syntaxhighlight lang="mtmacro" line> | |||
[r: json.indexOf("[1,2,3,1,1,3]", 1, 1)] | |||
</syntaxhighlight> | |||
Returns: {{code|3}} | |||
Find the index of the first occurrence of {{code|2}}, starting at index {{code|2}}: | |||
<syntaxhighlight lang="mtmacro" line> | |||
[r: json.indexOf("[1,2,3,1,1,3]", 2, 2)] | |||
</syntaxhighlight> | |||
Returns: {{code|-1}} | |||
'''Finding JSON Objects in an Array.''' You can also find the indexes of a JSON object in a JSON array.<br> | |||
In this example, [[json.path.read]] gets the object with the unique key {{code|currency}} set to {{code|Gold}} in an array of JSON objects representing money. Note that [[json.get]] is used because json.path.read always returns the object in an array.<br> | |||
The {{code|currency}} key is presupposed to be unique for every record in this example: | |||
<syntaxhighlight lang="mtmacro" line> | |||
[h: moneyJSON = '[ | |||
{"currency":"Copper", "amount":9}, | |||
{"currency":"Silver", "amount":14}, | |||
{"currency":"Gold", "amount":5} | |||
]'] | |||
[h: justGold = json.get(json.path.read(moneyJSON, "[?(@.currency == 'Gold')]"), 0)] | |||
[r: json.indexOf(moneyJSON, justGold)] | |||
</syntaxhighlight> | |||
Returns: {{code|2}} | |||
| | |also= | ||
{{func|json.count}} | |||
}} | }} | ||
[[Category:JSON Function]] | [[Category:JSON Function]] |
Latest revision as of 23:59, 15 March 2023
json.indexOf() Function
• Introduced in version 1.3b53
Returns the index of the first occurrence of a value in the JSON Array. If the value does not exist in the JSON Array then
-1
is returned. All JSON Array indexes start at 0
.Usage
json.indexOf(array, value)
json.indexOf(array, value, start)
Parameters
array
- The JSON Array to search.value
- The value to find the index of in the JSON Array.start
- The index to start searching from, if not specified it defaults to0
.
Examples
Find the index of the first occurrence of
Returns:
1
:
[r: json.indexOf("[1,2,3,1,1,3]", 1)]
Returns: 0
Find the index of the first occurrence of 1
, starting at index 1
:
[r: json.indexOf("[1,2,3,1,1,3]", 1, 1)]
Returns: 3
Find the index of the first occurrence of 2
, starting at index 2
:
[r: json.indexOf("[1,2,3,1,1,3]", 2, 2)]
Returns: -1
Finding JSON Objects in an Array. You can also find the indexes of a JSON object in a JSON array.
In this example, json.path.read gets the object with the unique key currency
set to Gold
in an array of JSON objects representing money. Note that json.get is used because json.path.read always returns the object in an array.
The currency
key is presupposed to be unique for every record in this example:
[h: moneyJSON = '[
{"currency":"Copper", "amount":9},
{"currency":"Silver", "amount":14},
{"currency":"Gold", "amount":5}
]']
[h: justGold = json.get(json.path.read(moneyJSON, "[?(@.currency == 'Gold')]"), 0)]
[r: json.indexOf(moneyJSON, justGold)]
2