Convertidor de query string a JSON
Una cadena de consulta se reconoce con facilidad, pero resulta incómoda de inspeccionar cuando contiene caracteres codificados, valores vacíos, filtros repetidos e indicadores propios de una aplicación.
Ejecutar — gratis
Este convertidor de cadenas de consulta a JSON transforma ese formato compacto de transporte en un objeto estructurado que usted puede leer, copiar, comparar o incorporar a un flujo de depuración. Decodifica secuencias porcentuales como UTF-8, interpreta los signos más como espacios, conserva los valores vacíos y representa como listas los nombres de parámetro repetidos, respetando su orden original. La transformación es determinista y resulta apropiada para analizar solicitudes, preparar casos de prueba, revisar registros y crear herramientas de desarrollo.
Transforme parámetros compactos en un objeto fácil de inspeccionar
Las cadenas de consulta están diseñadas para transportar datos, no para facilitar su lectura. Un navegador o cliente puede enviar en una sola línea compacta un término de búsqueda, varias etiquetas seleccionadas, un campo opcional vacío y una ubicación con caracteres internacionales. Pegue en el convertidor la parte situada después de la ruta de la URL, con o sin el signo de interrogación inicial, y el resultado separará cada parámetro en una propiedad JSON. Un parámetro escrito sin signo igual se conserva con una cadena vacía, del mismo modo que uno seguido expresamente por un signo igual sin contenido. Los segmentos vacíos entre signos ampersand se omiten porque no contienen ningún parámetro. Así, usted puede comparar la salida con el estado de la aplicación: los valores quedan visibles, los vacíos no desaparecen y los contadores muestran tanto las claves distintas como el total de pares procesados. El analizador no contacta con el servidor de destino ni deduce tipos funcionales; valores como true, 42 y null siguen siendo cadenas. Este comportamiento previsible convierte el JSON en una representación fiel de lo que realmente transportaba la consulta.
Comprenda la decodificación y el tratamiento de claves repetidas
Cada clave y cada valor se decodifican por separado conforme a las reglas habituales de los formularios web. Un signo más se convierte en espacio, mientras que secuencias porcentuales como %20 y las secuencias UTF-8 de varios bytes se transforman en sus caracteres correspondientes. El signo igual solo actúa como separador en su primera aparición dentro de cada par, por lo que un valor puede contener otros signos iguales sin volver a dividirse. Las claves repetidas se conservan en lugar de sobrescribirse: la primera aparición produce una cadena, la segunda convierte esa propiedad en una lista y las siguientes se añaden en el orden recibido. Por ejemplo, tag=sale&tag=new genera una lista tag con sale seguido de new. Esto ayuda con filtros, grupos de casillas y sistemas que serializan varias selecciones bajo un solo nombre. Las secuencias porcentuales incorrectas provocan un error de entrada en vez de una decodificación parcial; también se rechazan los bytes codificados que no constituyen UTF-8 válido. Esta validación estricta evita que un resultado aparentemente correcto oculte una solicitud defectuosa. pair_count incluye las repeticiones y key_count cuenta los nombres decodificados distintos.
Aplique el resultado a pruebas, registros y diagnóstico de solicitudes
El objeto convertido es útil siempre que usted necesite comprender una consulta antes de que el código actúe sobre ella. Durante el desarrollo de una API, pegue la cadena de una solicitud fallida y compare el JSON decodificado con los parámetros esperados por la ruta. En pruebas automatizadas, convierta cadenas representativas en datos estables y compruebe que filtros repetidos, texto internacional, signos más y campos vacíos llegan con la forma prevista. Al revisar registros, la estructura resulta más sencilla de leer y comparar que una línea larga codificada, sobre todo cuando una clave aparece varias veces. El convertidor evita deliberadamente la coerción según un esquema: si la aplicación espera un número, booleano, fecha o una convención anidada con corchetes, aplique después la validación propia de esa aplicación. Este límite impide que una herramienta genérica invente significados que el remitente no declaró. Los nombres de propiedad se tratan de forma segura como datos, incluso si se parecen a elementos internos de JavaScript. Use la versión del navegador para comprobaciones rápidas o llame a la API por $0.002 cuando un proceso, sistema de pruebas o flujo de observabilidad necesite repetir la misma conversión determinista.
Qué puede hacer con ella
Depure una solicitud de API
Decodifique la consulta exacta enviada por un cliente y compare sus claves, valores vacíos y filtros repetidos con el contrato de la ruta.
Cree casos de prueba estables
Convierta cadenas representativas en resultados JSON deterministas para pruebas de integración y conjuntos de regresión.
Inspeccione datos codificados en registros
Haga legibles los parámetros codificados antes de investigar búsquedas, redirecciones o integraciones de seguimiento.
Preguntas frecuentes
¿Cuánto cuesta el convertidor?
La herramienta del navegador es gratuita. Las solicitudes a la API utilizan el precio base publicado de $0.002.
¿Puedo incluir el signo de interrogación inicial?
Sí. La entrada puede comenzar con un signo de interrogación o contener únicamente los caracteres que lo siguen.
¿Cómo se representan los nombres de parámetro repetidos?
Una clave que aparece una vez tiene un valor de cadena. Cuando se repite, sus valores forman una lista en el orden original.
¿Decodifica los signos más y la codificación porcentual?
Sí. Los signos más se convierten en espacios y los bytes porcentuales válidos se decodifican como UTF-8 tanto en claves como en valores.
¿Convierte números y booleanos a tipos JSON?
No. Los parámetros se devuelven como cadenas para que el convertidor no suponga un esquema ni modifique los datos del remitente.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev/query-string-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="}'const res = await fetch("https://api.kit.forhosting.com/dev/query-string-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/query-string-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/query-string-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/query-string-to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.query_string_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |