Formatting JSON

Some Actions may accept additional data that needs to be properly formatted as JSON.

These are a few important things to remember when formatting JSON.

  1. Strings need to be in quotes.
  2. Your keys should be in quotes.
  3. Integers, booleans, and null values should not have quotes.
  4. The last field or item in a list has NO ENDING COMMA.
  5. An array (or list) of data must be in [ brackets ].
  6. Your JSON should start and end with { curly braces }.

See the below example for various formatting options:

{
  "product": { 
     "title": "A string in quotes.",
     "id": 123123123,
     "boolean_field": true,
     "a_null_field": null // No comma here!
},
{
  "an_array": [
    {"value":"a"},
    {"value":"b"} // No comma here!
  ] // No comma here!
}

The json_value Twig Filter

There is also a special filter you can use to ensure that your JSON keys and values are formatted properly. This filter is available in fields that have the Token Browser icon {t} in the top-right corner of the field.

{
  "product": { 
    {{ "id" | json_value(product.id) }},
    {{ "title" | json_value("Copy of - " ~ product.title) }},
    {{ "body_html" | json_value(product.body_html) }},
    {{ "gift_card" | json_value(product.gift_card) }}
  }
}

 This filter combines adding the key and value into the json_value filter, in the format:

{{ "your_key" | json_value(your_value) }}

This will ensure that the your key and value are JSON encoded properly, whether it's an integer, boolean, or HTML. When using the json_value you do not need to worry about putting quotes around your values.

You can apply additional filters to your JSON value like so:

{{ "title" | json_value(product.title | upcase | truncate(30)) }}