Maison > Article > interface Web > À propos de la façon dont Jackson analyse la chaîne JSON
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!