A JSON Pointer is either an empty string selecting the whole document or a sequence of reference tokens prefixed by /. Tokens are exact member names after escape decoding; they are not property expressions.

Empty is root; slash is not

The empty pointer selects the complete document. / contains one empty token and therefore selects an object member whose name is the empty string. Treating these as equivalent changes the selected value.

Decode ~1 and ~0 once

Within a token, ~1 represents slash and ~0 represents tilde. The text ~01 decodes to ~1, not slash, because escapes are decoded once. To generate a token, replace tilde first and slash second.

Verify the exact decoded tokens

Check each token against the original member name. Decode ~1 to slash and ~0 to tilde only once, then distinguish object names from canonical array indices. Keep the empty root pointer distinct from / and compare important paths with the authoritative producer contract.