Access nested JSON values

I have the following site.json file with some data in it.

{
  "name": "Some name here",
  "description": "some description here",
  "defaults": {
    "title": "This is the default title"
  }
}

My config.yml file is as follows:

...
collections:
  - label: "Settings"
    name: "settings"
    editor:
      preview: false
    files:
      - label: "Site Settings"
        name: "settings"
        file: "src/_data/site.json"
        fields:
          - { label: Name, name: name, widget: string }
          - { label: Description, name: description, widget: string }
          - { label: Title, name: XXXXXXX, widget: string }

How do I access the title key nested inside defaults? Or to put another way what do I replace XXXXXXX with to get the value “This is the default title”
defaults.title doesn’t work as I would have expected.

Hi. You can do:

collections:
  - label: "Settings"
    name: "settings"
    editor:
      preview: false
    files:
      - label: "Site Settings"
        name: "settings"
        file: "src/_data/site.json"
        fields:
          - { label: "Name", name: "name", widget: "string" }
          - { label: "Description", name: "description", widget: "string" }
          - label: "Defaults values"
            name: "defaults"
            widget: "object" # Use the object widget
            collapsed: false
            fields: # Add new field(s) for the defaults object
              - label: "Title"
                name: "title"
                widget: "string"

Hope this help you.

3 Likes