JSON Pointer — пустая строка для всего документа или последовательность токенов с /. После декодирования токены являются точными именами полей, а не выражениями.

Пустая строка — корень, слеш — нет

Пустой указатель выбирает документ целиком. / содержит один пустой токен и выбирает поле с пустым именем. Считать их равными нельзя.

Декодируйте ~1 и ~0 один раз

В токене ~1 означает слеш, а ~0 — тильду. Строка ~01 превращается в ~1, а не в слеш: декодирование однократное. При кодировании сначала заменяйте тильду, потом слеш.

Проверьте декодированные токены

Сверьте каждый токен с исходным именем поля. Один раз декодируйте ~1 в слеш и ~0 в тильду, затем отличайте имена полей от канонических индексов массива. Не путайте пустой указатель корня с / и сверяйте важные пути с контрактом источника.