El doble escape suele indicar que una cadena JSON se guardó dentro de otra. Las barras visibles pertenecen a capas distintas, así que decodificar hasta que el texto parezca familiar no es una regla segura.
Cuenta límites, no barras
Empieza por los formatos productor y destino. Un salto de línea del texto se vuelve \n en la primera cadena JSON. Si toda esa cadena se serializa dentro de otra, la barra inversa también se escapa y aparece como \\n en la representación exterior. Un visor de logs puede añadir otra capa visual. Cuenta los límites reales y conserva un ejemplo conocido en vez de decidir solo por las barras visibles.
Decodifica una capa revisada
EscapeJSON realiza una pasada y muestra el resultado como texto. Si el resultado es otra cadena JSON citada, permanece visible hasta que elijas reutilizarlo. Así una ruta, plantilla o línea de log con barras intencionales no se transforma recursivamente. Después de cada paso compara el resultado con el contrato del productor antes de cruzar el siguiente límite o tratar el texto como JSON estructurado.
Verifica destino y número de capas
Compara el resultado con los contratos productor y destino. El escape protege una sola gramática JSON; no sanea HTML, SQL, JavaScript, shell u otro analizador. Decodifica una capa revisada cada vez, rechaza Unicode mal formado y conserva un ejemplo conocido para integraciones importantes.