Maison  >  Article  >  interface Web  >  À propos de la façon dont Jackson analyse la chaîne JSON

À propos de la façon dont Jackson analyse la chaîne JSON

亚连
亚连original
2018-06-19 10:16:283038parcourir

Ci-dessous, je vais partager avec vous une méthode permettant à Jackson d'analyser les chaînes json. La première lettre majuscule sera automatiquement convertie en minuscule. Elle a une bonne valeur de référence et j'espère qu'elle sera utile à tout le monde.

Problème

Le problème rencontré par l'affiche est qu'un certain champ défini dans la classe et la table d'entité est RMBPrice, avec la première lettre en majuscule . Le nom de la colonne interrogé par SQL est également RMBPrice en majuscule, mais lors de l'utilisation des tables de données jquery pour initialiser la colonne, une erreur se produit. Le code de cette ligne de

est le suivant :

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

Lorsque vous ouvrez la page, ceci sera affiché. Afficher la valeur renvoyée par l'interface d'appel du navigateur :

est en minuscule rmbprice

analyse

L'interface renvoie un objet @ResponseBody. À partir du point d'arrêt dans le code, la valeur de retour de l'interface est entièrement en majuscule, cela ne peut donc se produire que lors de la conversion en question json. .

La première lettre de Baidu json est en majuscule et les articles seront automatiquement convertis en minuscules.

Après les tests, il est vrai que les quelques lettres actuelles qui sont toutes en majuscules seront converties en minuscules jusqu'à ce qu'elles ne soient plus majuscules. S'il y a une majuscule après la minuscule, elle restera en majuscule.

Par exemple : RRRddRRR deviendra rrrddRRR.

Solution

Je modifie directement la ligne de code en js et change Après avoir interrogé :

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

, si vous souhaitez conserver les majuscules, vous devez ajouter des annotations.

Par exemple, Jackson utilise :

Lors de la définition de champs dans les classes d'entités :

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

fastjson utilise :

@JSONField(name = “Name”) Et cette balise doit être marquée avant la méthode 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;
 }
}

Il est aussi dit :

Pour une conversion forcée, utilisez com.alibaba.fastjson.serializer.PascalNameFilter pour convertir directement la première lettre en majuscule. Par exemple : JSON.toJSONString(bean,new PascalNameFilter());

Cependant, je n'ai pas essayé ce qui précède car j'ai utilisé le nom après conversion automatique en minuscules. Si vous souhaitez conserver la majuscule, vous devez rechercher davantage par vous-même~~☺☺

Ce qui précède est ce que j'ai compilé pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

Comment obtenir l'effet de boîte d'affichage dans le composant Vue Toast

À propos du traitement des paramètres de règles dans webpack

Comment implémenter des calculs simples dans AngularJS

Solution au bug de soumission de boîte modale Bootstrap

Détaillé interprétation de la fonction d'entrée exécutée dans webpack

Comment implémenter l'animation d'entrée/sortie dans Vue

À propos du routage dans node.js, dans le milieu Introduction détaillée de l'article

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn