Вставьте {"a/b":{"m~n":"ok"}} и разрешите /a~1b/m~0n. Первый токен станет a/b, второй — m~n, и выберется строка ok без повторной интерпретации символов.
Ожидаемое значение
Тип значения — string, форматированный результат — "ok", токенов два. Генерация листьев должна вернуть ровно этот указатель.
Проверка неверного экранирования
Попробуйте /a~2b. Поскольку ~2 не задано RFC 6901, resolver вернёт INVALID_ESCAPE, а не угадает имя.
Проверьте декодированные токены
Сверьте каждый токен с исходным именем поля. Один раз декодируйте ~1 в слеш и ~0 в тильду, затем отличайте имена полей от канонических индексов массива. Не путайте пустой указатель корня с / и сверяйте важные пути с контрактом источника.