Arreglar comillas simples en JSON
Las cadenas y claves de objeto de JSON deben usar comillas dobles. Los valores entre comillas simples son comunes en fragmentos de JavaScript, salidas tipo Python y respuestas de LLM.
Por qué fallan las comillas simples
El JSON estricto solo acepta cadenas con comillas dobles. Un parser rechazará {'name':'Ada'} aunque a los desarrolladores JavaScript la forma les resulte familiar.
Ejemplo erróneo
{ 'name': 'Ada', 'active': true }
JSON corregido
{ "name": "Ada", "active": true }
De dónde sale el texto con comillas simples
repr() y la impresión de diccionarios en Python, literales de objeto JavaScript copiados de la consola, hash inspect en Ruby y muchas respuestas de LLM usan comillas simples. Ninguna de esas cosas es JSON — son literales nativos del lenguaje que solo se parecen.
Por qué un buscar y reemplazar a ciegas es peligroso
Un replace ciego de ' por " rompe valores que contienen un apóstrofo, como { 'note': 'it\'s fine' }. Tras el reemplazo, el apóstrofo interno choca con el nuevo delimitador de cadena. Un convertidor seguro debe rastrear el contexto de las comillas y solo cambiar los delimitadores, no los caracteres internos.
Estrategia segura de conversión
Primero tokeniza la entrada: recorre el texto, identifica los límites de las cadenas por su comilla de apertura y reconstruye cada token con comillas dobles — escapando las comillas dobles internas y deshaciendo el escape de las comillas simples ya redundantes. La herramienta de reparación de este sitio lo hace en una pasada.
Errores de sintaxis JSON relacionados
El JSON con comillas simples suele venir acompañado de otros pecados al estilo JavaScript en el mismo payload: claves sin entrecomillar, comas finales, comentarios de línea o valores undefined. Tras arreglar las comillas, valida el resultado para sacar a la luz lo que quede.
FAQ
P: ¿JSON5 acepta cadenas con comillas simples? R: Sí, JSON5 las permite. P: ¿json.loads de Python aceptará comillas simples? R: No — usa ast.literal_eval si la fuente es realmente un literal de Python; si no, primero convierte las comillas. P: ¿Las claves JSON también deben llevar comillas dobles? R: Sí — las claves son cadenas, misma regla.
Guías de reparación de JSON
Centros temáticos
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
Guías específicas
- Cómo decodificar cadenas Base64 (y payloads JWT)
- Codificación URL: codifica parámetros de consulta y rutas
- Convertir YAML a JSON (y evitar errores de indentación)
- Convertir JSON a CSV: aplanar un arreglo de objetos
- Convertir JSON a XML: raíz, atributos y arreglos
- Escapar JSON como literal de cadena (y decodificar JSON con doble codificación)
- Arreglar comas finales en JSON
- Arreglar claves sin comillas en JSON
- Reparar JSON generado por LLM
- Arreglar el error de parse JSON: Expected Property Name
- JSON frente a literal de objeto JavaScript
- Valida el JSON antes de las solicitudes API
- Formateador JSON frente a JSON Repair
- Arreglar errores JSON Unexpected Token
- Convertidor JSON a objeto JavaScript