search

Found

info Descripción

Evalúa un puntero JSON (RFC 6901) como /users/0/name, decodifica los escapes ~0 y ~1 y traza cada token con el valor resuelto o el motivo exacto del error.

📘 Cómo usar

  1. Pega el documento JSON que quieres consultar en el campo superior
  2. Escribe un JSON Pointer como /users/0/name
  3. Revisa el estado, el valor resuelto y la ruta de resolución token a token

Evaluador de JSON Pointer (RFC 6901)

Texto JSON válido según RFC 8259. Admite objetos, arreglos y estructuras anidadas.

Sintaxis RFC 6901. Ejemplos: vacío (raíz), /users/0/name, /meta/a~1b (clave a/b), /meta/c~0d (clave c~d).

Estado
 
¡Copiado!

※ ~0 → ~, ~1 → /. Los índices de arreglos deben ser enteros no negativos. El guion final - indica la posición tras el último elemento y no tiene valor.

※ Cumple con RFC 6901 (2013). Los punteros se separan por / y el puntero vacío ('') devuelve la raíz del documento.

Article

Evaluador de JSON Pointer (RFC 6901) | Valor resuelto y motivo exacto del error

Evalúa un puntero JSON (RFC 6901) sobre cualquier documento y observa cómo se resuelve token a token. Decodifica los escapes ~0 y ~1, valida los índices de arreglos y obtén el motivo preciso cuando un puntero no resuelve.

💡 Sobre esta herramienta

Un JSON Pointer es una cadena como /users/0/name que señala una única posición dentro de un documento JSON. Aparecen por todas partes en cuanto trabajas con APIs: operaciones de JSON Patch (RFC 6902), $ref en JSON Schema y OpenAPI, y los punteros de error de las respuestas JSON:API. La sintaxis parece sencilla hasta que una clave contiene una barra o una tilde: entonces a/b debe escribirse /meta/a~1b y c~d como /meta/c~0d, y es muy fácil equivocarse al expandir el escape mentalmente.

Esta herramienta divide el puntero por /, desescapa cada token (~1/, luego ~0~) y recorre el documento paso a paso. La ruta de resolución muestra hasta dónde llegó el recorrido, así que cuando un puntero falla puedes ver si fue por un miembro inexistente, un índice fuera de rango o un token que intentó descender en un valor escalar. El puntero vacío devuelve la raíz completa del documento, tal como exige la especificación.

🧐 Preguntas frecuentes

Q. ¿Qué diferencia hay entre ~0 y ~1? A. ~1 representa una barra / y ~0 una tilde ~. El orden lo fija la especificación: primero se reemplaza ~1 y luego ~0. Hacerlo al revés alteraría secuencias como ~01, por eso esta herramienta aplica siempre ~1 antes que ~0.

Q. ¿Cómo referencio un elemento de un arreglo? A. Con un entero de base cero, por ejemplo /users/0. Los ceros a la izquierda como 00 o 01 no son válidos. Un índice fuera del rango del arreglo (igual o mayor que su tamaño) devuelve "No encontrado" y la ruta resalta el token donde se detuvo el recorrido.

Q. ¿Por qué falla un - final? A. - es el token reservado para "la posición después del último elemento". JSON Patch lo usa para añadir al final, pero como referencia de lectura no apunta a ningún valor, por lo que la herramienta lo marca sin valor.

Q. ¿Puedo apuntar a un miembro cuya clave es la cadena vacía? A. Sí. En {"": 1} el valor se referencia con / (una sola barra). Es distinto del puntero vacío (nada en absoluto), que apunta a toda la raíz.

Q. ¿Mis datos salen del navegador? A. No: el análisis y el recorrido se ejecutan por completo en tu navegador, así que puedes pegar cargas útiles internas sin que se suban a ningún sitio.

📚 De XPath a JSON Pointer

Para quien viene del mundo XML, ayuda comparar JSON Pointer con XPath. XPath es un lenguaje de consulta completo, con predicados, ejes y funciones; JSON Pointer renuncia a todo eso y solo sabe señalar un punto exacto. Esa decisión de diseño tiene una ventaja didáctica: el modelo mental es trivial de aprender, porque cada token es literalmente el nombre de una clave o el índice de un arreglo, sin condiciones ni comodines.

Esa simplicidad es justo lo que permite incrustar un puntero dentro de un fragmento de URI. El #/components/schemas/User que ves en OpenAPI no es una notación propia de OpenAPI: todo lo que sigue al # es un JSON Pointer interpretado como fragmento. Entender esto convierte muchos errores de $ref que parecen mágicos en algo que puedes verificar a mano, token por token.