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.