Red de conocimiento informático - Material del sitio web - Cómo utilizar Jackson para analizar una cadena que contiene caracteres de escape en una cadena JSON de formato estándar

Cómo utilizar Jackson para analizar una cadena que contiene caracteres de escape en una cadena JSON de formato estándar

Cuando se utiliza JSON para transferir datos desde el backend al frontend, si los datos en sí contienen algunos caracteres especiales, se producirá un error al analizar los datos JSON.

Utilice el siguiente método para procesar la cadena json que se enviará al front-end, lo que puede resolver el problema de todos los caracteres especiales que se pueden ingresar en el teclado.

// Cuando el texto contiene los siguientes caracteres especiales, este método puede procesar con éxito estos caracteres para que puedan analizarse correctamente en primer plano. Nota: este método no puede manejar comillas simples

cadena estática pública stringToJson(String s) {

StringBuffer sb = new StringBuffer ();

for (int i=0; ilt; s.length(); i ) {

p>

char c = s.charAt(i);

cambiar (c) {

caso '\"':

sb.append (" \\");

romper

// caso '\\':

// sb.append ("\\\\" );

// descanso

caso '/':

sb.append("\\/");

break;

case '\b': // retroceso

sb.append("\\b");

break;

cases '\f': // alejarse y cambiar de página

sb.append("\\f");

break;

case '\n':

sb.append("\\n"); //escribe nueva línea

salto; >caso '\r': //retorno

sb.append("\\r"

romper

caso '\t'; //saltar horizontalmente

sb.append("\\t");

break;

predeterminado:

sb.append (c);

}}

return sb.toString();

}

/Nota El siguiente método se utiliza antes insertar el texto de datos en la cadena de datos json y usar

/ para manejar comillas simples y barras diagonales en el texto después de preprocesar el texto antes de insertarlo en la cadena JSON

cadena estática pública StringDanYinToJSON(String ors) {

ors = ors == null ?"" : ors;

StringBuffer buffer = nuevo StringBuffer(ors);

int i = 0;

mientras (i lt; buffer.length()) {

if (buffer.charAt(i) == '\''...| buffer.charAt (i) == ' \\') {

buffer.insert(i, '\\'

i =

} más; {

i;

}

}

}

return buffer.toString();

}