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

jsontype Operator

11 juin 2022 à 10h47
purposeretrieve the type of a property from JSON strings
inputa selection of JSON strings
parameterone or more indexes of the property whose type is to be retrieved
outputthe types of each of the retrieved properties

Learn more about how to use Filters

Depuis : 5.2.4 See JSON in TiddlyWiki for background.

The jsontype operator is used to retrieve the type of a property in JSON data. See also the following related operators:

  • jsonget to retrieve the values of a property in JSON data
  • jsonindexes to retrieve the names of the fields of a JSON object, or the indexes of a JSON array
  • jsonextract to retrieve a JSON value as a string of JSON

JSON supports the following data types:

  • string - a Unicode string
  • number - a floating point number
  • boolean - Boolean value (true or false)
  • array - an array of values
  • object - an object of name/value pairs
  • null - a special type representing a missing value

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 jsontype operator uses multiple parameters to specify the indexes of the property whose type is to be retrieved:

[<jsondata>jsontype[a]] --> "string"
[<jsondata>jsontype[d]] --> "object"
[<jsondata>jsontype[d],[f]] --> "array"
[<jsondata>jsontype[d],[f],[2]] --> "boolean"

Depuis : 5.3.2 Negative indexes into an array are counted from the end, so -1 means the last item, -2 the next-to-last item, and so on:

[<jsondata>jsontype[d],[f],[-1]] --> "null"
[<jsondata>jsontype[d],[f],[-2]] --> "boolean"
[<jsondata>jsontype[d],[f],[-4]] --> "string"

Indexes can be dynamically composed from variables and transclusions:

[<jsondata>jsontype<variable>,{!!field},[0]]

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

[<jsondata>jsontype[]] --> "object"