Visual RFC.
ALL RFCs / RFC 6901
Read the RFC ↗
RFC 6901 / JSON POINTER

Decode slash and tilde

02

Decode ~1 as slash, then ~0 as tilde, after splitting the pointer into tokens.

RFC 6901 · § 4EXAMPLE
3 / 3
Decode slash and tildeSplit /a~1b/~0key into two tokens. First decode ~1 to slash, then ~0 to tilde, yielding a/b and ~key. Never split the recovered slash again.Unescape inside each tokenPointer: /a~1b/~0keya~1b~0keyTwo tokens, split before decodinga/b~0keyFirst: ~1 becomes /a/b~keyThen: ~0 becomes ~Order matters: ~01 becomes literal ~1, never /
03
Decode tilde escapes second.

The resulting member names are a/b and ~key. Do not split the recovered slash again.

Source for this drawing: RFC 6901 · Read RFC section 4 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Terms in this drawing
Escape sequence
A spelling that represents a reserved character inside a token.
Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

Separate the path first, then unescape each token in the specified order.

  • A slash separates reference tokens. A slash within a member name is written ~1, and a tilde within a name is written ~0. A bare tilde or an escape such as ~2 is invalid pointer syntax.
  • For each token, first replace ~1 with /, then replace ~0 with ~. The order matters: ~01 becomes the literal name ~1, not a slash.
  • The example pointer /a~1b/~0key has two tokens. They decode to the names a/b and ~key. A decoded slash belongs to a name; it must not be split again as a path separator.
DETAILS

These are JSON Pointer escapes, not JSON backslash escapes or URI percent escapes. Pointers use characters rather than byte offsets. Exact member-name matching does not normalize visually similar Unicode spellings.

Read the RFC section ↗

All chapters in RFC 6901

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗