# Accessing Objects with JSONPath

Locoia uses JSONPath for referencing data. Note that $ is not required anywhere within the app. Instead, we use Jinja2 so `$.store.book[*].author` becomes `{{ store.book[*].author }}` in Locoia.

Test your JSONPath with the [JSON Path Visualizer Tool](https://jsonpath.com/) (don't enter any private information).

### Code example

{% tabs %}
{% tab title="JSON Response Payload" %}

```javascript
{ "store": {
    "book": [ 
      { "category": "reference",
        "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "category": "fiction",
        "author": "Evelyn Waugh",
        "title": "Sword of Honour",
        "price": 12.99
      },
      { "category": "fiction",
        "author": "Herman Melville",
        "title": "Moby Dick",
        "isbn": "0-553-21311-3",
        "price": 8.99
      },
      { "category": "fiction",
        "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ],
    "bicycle": {
      "color": "red",
      "price": 19.95
    }
  }
}
```

{% endtab %}
{% endtabs %}

### Reference examples and descriptions

| JSONPath                                         | Description                                                 |
| ------------------------------------------------ | ----------------------------------------------------------- |
| $.store.book\[\*].author                         | The authors of all books in the store                       |
| $..author                                        | All authors                                                 |
| $.store.\*                                       | All things in store, which are some books and a red bicycle |
| $.store..price                                   | The price of everything in the store                        |
| $..book\[2]                                      | The third book                                              |
| $..book\[(@.length-1)]                           | The last book via script subscript                          |
| $..book\[-1:]                                    | The last book via slice                                     |
| $..book\[0,1]                                    | The first two books via subscript union                     |
| $..book\[:2]                                     | The first two books via subscript array slice               |
| $..book\[?(@.isbn)]                              | Filter all books with isbn number                           |
| $..book\[?(@.price<10)]                          | Filter all books cheaper than 10                            |
| $..book\[?(@.price==8.95)]                       | Filter all books that cost 8.95                             |
| $..book\[?(@.price<30 && @.category=="fiction")] | Filter all fiction books cheaper than 30                    |
| $..\*                                            | All members of JSON structure                               |
