This page is part of a static HTML representation of the TiddlyWiki at https://tiddlywiki.com/

jsonindexes Operator

11th June 2022 at 10:47am
purposeretrieve the value of a property from JSON strings
inputa selection of JSON strings
parameterone or more indexes of the property to retrieve
outputthe values of each of the retrieved properties

Learn more about how to use Filters

Introduced in v5.2.4 See JSON in TiddlyWiki for background.

The jsonindexes operator is used to retrieve the property names of JSON objects or the index names of JSON arrays. See also the following related operators:

  • jsonget to retrieve the values of a property in JSON data
  • jsontype to retrieve the type of a JSON value
  • jsonextract to retrieve a JSON value as a string of JSON

Properties within a JSON object are identified by a sequence of indexes. In the following example, the value at [a] is one, and the value at [d][f][0] is five.

{
    "a": "one",
    "b": "",
    "c": "three",
    "d": {
        "e": "four",
        "f": [
            "five",
            "six",
            true,
            false,
            null
        ],
        "g": {
            "x": "max",
            "y": "may",
            "z": "maize"
        }
    }
}

The following examples assume that this JSON data is contained in a variable called jsondata.

The jsonindexes operator uses multiple parameters to specify the indexes of the property to retrieve:

[<jsondata>jsonindexes[d],[f]] --> "0", "1", "2", "3", "4"
[<jsondata>jsonindexes[d],[g]] --> "x", "y", "z"

Indexes can be dynamically composed from variables and transclusions:

[<jsondata>jsonindexes<variable>,{!!field}]

Retrieving the indexes of JSON properties that are not objects or arrays will return nothing.

A subtlety is that the special case of a single blank parameter is used to identify the root object. Thus:

[<jsondata>jsonindexes[]] --> "a", "b", "c", "d"