100 % local: tus datos nunca salen de tu navegador

Query string a JSON — pega la URL entera

Convierte una query string de URL en JSON. Pega la dirección entera si quieres: los parámetros salen como objeto, legible línea por línea.

Instantáneo Privado Cero cookies
Indentación

Entrada Query String

Salida JSON

Qué hace esta herramienta

Una cadena de consulta se vuelve un objeto JSON.

?q=json+to+yaml&page=2&tag=a&tag=b
{
  "q": "json to yaml",
  "page": "2",
  "tag": ["a", "b"]
}

+ vale un espacio y %C3%A9 vale é: la codificación por porcentajes se decodifica sola, que suele ser el motivo de tu visita. Una clave repetida se vuelve un arreglo, en el orden en que aparecieron los valores.

Pega la dirección entera

https://x.dev/search?q=ada&lang=es#resultados
{
  "q": "ada",
  "lang": "es"
}

Pegar una URL entera es lo que hace casi todo el mundo, y la herramienta hacía una clave con todo lo que iba delante de la consulta: https://x.dev/search?q. El resultado parecía datos y no tenía sentido. Ahora se descarta la dirección anterior al primer signo de interrogación, y el fragmento posterior también: location.search tampoco lo lleva. Era un defecto real, encontrado al escribir esta página y corregido.

Un signo de interrogación dentro de un valor se queda donde está: a=1?2 da {"a": "1?2"}, porque el signo que abre una consulta va antes del primer =, no después.

Todo es cadena

?id=007&active=true&count=3
{
  "id": "007",
  "active": "true",
  "count": "3"
}

Una cadena de consulta lleva texto. 007 no es 7, true no es un booleano, y un conversor que adivinara reescribiría en silencio un identificador. El tipado va de tu lado, donde sabes que count es un número y que id es una referencia con sus ceros.

Lo que no se toca

  • Las claves con corchetes. a[]=1 y o[b]=2 conservan a[] y o[b] como nombres. PHP y Rails leen ahí arreglos y objetos; otras pilas no, y la cadena misma no dice quién la escribió.
  • El orden de las claves. Salen como entraron, primera aparición primero.
  • Los valores vacíos. ?a&b= da {"a": "", "b": ""}: un parámetro sin valor está presente, y a menudo eso es justo lo que significa.

Privado por diseño

Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.

Preguntas frecuentes

¿Puedo pegar una URL entera?
Sí, desde que se escribió esta página. Antes, `https://x.dev/p?a=1` te daba una clave llamada `https://x.dev/p?a`: la dirección delante de la consulta pasaba a formar parte de ella y el resultado parecía datos. Ahora se descarta todo lo anterior al primer signo de interrogación, y también el `#fragmento` que va detrás, igual que hace un navegador al rellenar `location.search`.
¿Por qué todos los valores son cadenas?
Porque una cadena de consulta no tiene tipos. `?page=2` y `?page=02` son dos cadenas distintas, y la segunda significa algo en bastantes API: una referencia rellenada, una versión. Leer cualquiera de las dos como el número 2 decidiría por ti y perdería la diferencia. Convierte en tu lado, donde sabes qué es el parámetro.
¿Y `a[]=1&a[]=2`?
La clave se queda en `a[]`, tal como está escrita. Los corchetes son una convención —PHP y Rails leen arreglos ahí, muchas otras pilas no— y una cadena de consulta no dice cuál la produjo. Una clave repetida sin corchetes (`a=1&a=2`) sí pasa a ser un arreglo: es lo único que la propia sintaxis vuelve inequívoco.

Convertidores relacionados