Skip to main content


Laurence MorganAbout 1 min


Outputs all the keys in a structure as a file path


struct-keys outputs all of the keys in a structured data-type eg JSON, YAML, TOML, etc.

The output is a JSON array of the keys with each value being a file path representation of the input structure's node.


<stdin> -> struct-keys [ depth ] -> <stdout>

<stdin> -> struct-keys [ flags ] -> <stdout>


The source for these examples will be defined in the variable $example:

» set json example={
      "firstName": "John",
      "lastName": "Smith",
      "isAlive": true,
      "age": 27,
      "address": {
          "streetAddress": "21 2nd Street",
          "city": "New York",
          "state": "NY",
          "postalCode": "10021-3100"
      "phoneNumbers": [
              "type": "home",
              "number": "212 555-1234"
              "type": "office",
              "number": "646 555-4567"
              "type": "mobile",
              "number": "123 456-7890"
      "children": [],
      "spouse": null

Without any flags set:

» $example -> struct-keys

Defining max depth and changing the separator string:

» $example -> struct-keys --depth 1 --separator '.'   

An example of a unicode character being used as a separator:

» $example -> struct-keys --depth 2 --separator ☺                                                                                                                                                           

Separator can also be multiple characters:

» $example -> struct-keys --depth 1 --separator '|||' 


  • --depth How far to traverse inside the nested structure
  • --separator String to use as a separator between fields (defaults to /)
  • -d Alias for --depth
  • -s Alias for --separator

See Also

  • [ Index ]: Outputs an element from an array, map or table
  • [[ Element ]]: Outputs an element from a nested structure
  • formap: Iterate through a map or other collection of data
  • set: Define a local variable and set it's value

This document was generated from builtins/core/datatools/structkeys_doc.yamlopen in new window.

Last update:
Contributors: Laurence Morgan,Laurence Morgan,Laurence Morgan