knowledge/technology/files/JSON Pointer.md

1.2 KiB
Raw Blame History

obj rfc
concept https://datatracker.ietf.org/doc/html/rfc6901

JSON Pointer

JSON Pointer defines a string format for identifying a specific value within a JSON document.

A JSON Pointer is a string of tokens separated by / characters, these tokens either specify keys in objects or indexes into arrays. For example, given the JSON

{
  "biscuits": [
    { "name": "Digestive" }`
    { "name": "Choco Leibniz" }
  ]
}

/biscuits would point to the array of biscuits and /biscuits/1/name would point to "Choco Leibniz".

To point to the root of the document use an empty string for the pointer. The pointer / doesnt point to the root, it points to a key of "" on the root (which is totally valid in JSON).

If you need to refer to a key with ~ or / in its name, you must escape the characters with ~0 and ~1 respectively. For example, to get "baz" from { "foo/bar~": "baz" } youd use the pointer /foo~1bar~0.

Finally, if you need to refer to the end of an array you can use - instead of an index. For example, to refer to the end of the array of biscuits above you would use /biscuits/-. This is useful when you need to insert a value at the end of an array.