Tengo un archivo json en esa entidad de título que está allí. Analizo el título, da error debido al carácter '\' en el título.
for(int i = 0; i < stringJSON.length() - 1; i++){ if(stringJSON.charAt(i) == character && !(stringJSON.charAt(i+1) == character)){ rawJSON = new StringBuilder(stringJSON).insert(i+1, '\\').toString(); i = i + 2; System.out.println("found at " + i); }El archivo json de entrada es el siguiente:
{ "class": { "number": 2, "student": { "title": "\\The first day \b of my life", "age": 1 }, "student": { "title": "\\A corner in the \A home", "age": 2 } } }La solución anterior tiene muchos problemas, como "\\" es un carácter válido, '\"' es un carácter válido.
¿Alguien puede ayudarme a encontrar algún paquete Java o API que ayude a corregir automáticamente este tipo de error?
En el segundo registro de estudiante, puede ver una sola barra. Eso hace que json no sea válido.
Mi pregunta es ¿cómo corregir este json? Puedo eliminarlo o agregar una barra inclinada más para que sea una cadena json válida.
La cadena es una combinación de los caracteres de escape "\\" y el carácter de control '\'.
Esto responde a lo que estás preguntando:
Puede ver allí cómo \ es un carácter de "control". Si desea una barra invertida literal dentro de su JSON, deberá escapar: "\\" es una cadena JSON válida, por ejemplo.
Fuente: caracteres válidos JSON