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

Método de conversão automática de maiúsculas para minúsculas ao analisar strings JSON no Jackson

Problema

O problema encontrado pelo usuário é que, ao definir um campo na classe de entidade e na tabela como RMBPrice, com a primeira letra em maiúscula, o nome da coluna retornada pela consulta SQL é RMBPrice em maiúsculas, mas ao inicializar a coluna com o datatables do jQuery, ocorre erro.

O código daquela linha é o seguinte:

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

Abra a página e ela mostrará isso. Verifique o valor retornado pela interface chamada no navegador:

É o "rmbprice" em minúsculas

Análise

A interface retorna um objeto @ResponseBody, no código, faça um breakpoint até que o valor de retorno da interface seja todo em maiúsculas, então pode ser que haja problema na conversão para JSON.

No 百度 json, se a primeira letra for maiúscula, o artigo de conversão automática para minúsculas aparecerá.

Após teste, realmente é assim, todas as letras maiúsculas no início serão convertidas para minúsculas até que não haja mais maiúsculas, se houver maiúsculas após minúsculas, elas serão mantidas maiúsculas.

Por exemplo: RRRddRRR se torna rrrddRRR.

Solução

Eu diretamente modifiquei aquela linha do código, alterando para:

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

Após consulta, para manter maiúsculas, é necessário adicionar a anotação.

Por exemplo, uso do jackson:

Ao definir campos na classe de entidade:

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

Uso do fastjson:

@JSONField(name = "Nome") E essa marca deve ser aplicada antes do 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;
 }
} 

Também dizem:

Conversão forçada, usando com.alibaba.fastjson.serializer.PascalNameFilter, converta diretamente a primeira letra para maiúscula. Exemplo: JSON.toJSONString(bean, new PascalNameFilter());

No entanto, eu não testei nenhuma dessas, porque usei o nome convertido automaticamente para minúsculas. Se você quiser manter maiúsculas, você mesmo precisa procurar mais. ;~9786;;9786;

Aqui está a maneira que o editor compartilha com você de converter automaticamente para minúsculas as primeiras letras de uma string JSON com Jackson, isso é tudo o que o editor compartilha com você. Espero que isso ajude você a obter uma referência e que você apóie e clamore pelo tutorial.

Declaração: O conteúdo deste artigo é extraído da internet, pertence ao autor original, foi contribuído e carregado voluntariamente pelos usuários da internet, este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidades legais relacionadas. Se você encontrar conteúdo suspeito de infringir direitos autorais, seja bem-vindo a enviar e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar e forneça provas relevantes. Caso seja confirmado, o site deletará imediatamente o conteúdo suspeito de infringir direitos autorais.)

Você também pode gostar