English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Método para que Jackson convierta automaticamente la primera letra en minúscula al analizar una cadena JSON

Problema

El problema que se encontró el usuario es que en la clase de entidad y la tabla definida se define un campo como RMBPrice, con la primera letra en mayúscula, el nombre de la columna devuelto por la consulta sql también es mayúscula RMBPrice, pero cuando se inicializa la columna con jquery datatables, se produce un error.

El código de esa línea es el siguiente:

{"name": "RMBPrice", "data": "RMBPrice", "className": "text-, "render": formatRMBPrice},

Al abrir la página se mostrará esto. Verifique el valor de retorno de la interfaz de llamada del navegador:

Es minúscula rmbprice

Análisis

La interfaz de retorno es un objeto @ResponseBody, en el código se hace un breakpoint, hasta que el valor de retorno de la interfaz sea mayúscula, por lo que solo puede haber problema en la conversión a json.

Baidu json la primera letra en mayúscula, apareció el artículo de conversión automática a minúsculas.

Después de probar, es cierto, todos los caracteres mayúsculas en los primeros pocos se convertirán en minúsculas hasta que no haya más mayúsculas, si hay mayúsculas después de las minúsculas, se mantendrá mayúsculas.

Por ejemplo: RRRddRRR se convertirá en rrrddRRR.

Solución

Modifiqué directamente esa línea de código en js, cambiándola a:

{"name": "rmbprice", "data": "rmbprice", "className": "text-, "render": formatRMBPrice},

Después de investigar, para mantener las mayúsculas es necesario agregar la anotación.

Por ejemplo, el uso de jackson:

Al definir campos en la clase de entidad:

@JsonProperty("ActionCode") 
 private String ActionCode = ""; 

Uso de fastjson:

@JSONField(name = “Name”) Y el marcador debe estar antes del método get:

public class User {}} 
 private String name; 
 private int age; 
 @JSONField(name = "Name") 
 public String getName(){
  return name;
 } 
 public void setName(String name){
  this.name = name;
 }
 @JSONField(name = "Age") 
 public int getAge(){
  return age;
 } 
 public void setAge(int age){
  this.age = age;
 }
} 

También se dice que:

La conversión forzada se realiza utilizando com.alibaba.fastjson.serializer.PascalNameFilter, que convierte la primera letra en mayúscula directamente. Por ejemplo: JSON.toJSONString(bean, new PascalNameFilter());

Sin embargo, no he probado ninguno de los anteriores, porque he adoptado el nombre que se convierte automáticamente en minúsculas. Si desea mantenerlo en mayúsculas, tendrá que buscarlo usted mismo. ~9786;;9786;

La siguiente es la única información que el editor comparte con usted sobre cómo el análisis de Jackson convierte la cadena JSON en minúsculas al principio, espero que sea de referencia para ustedes, y esperamos que todos nos apoyen y alienten el tutorial.

Declaración: El contenido de este artículo se obtiene de la red, es propiedad del autor original, el contenido se contribuye y carga de manera autónoma por los usuarios de Internet, este sitio no posee los derechos de propiedad, no se ha procesado editorialmente y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de copyright, le invitamos a enviar un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, por favor reemplace # con @) para denunciar y proporcionar evidencia relevante. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustará