Maison > interface Web > js tutoriel > le corps du texte

Comment opérer la conversion de casse de la première lettre lorsque Jackson analyse une chaîne json

php中世界最好的语言
Libérer: 2018-04-14 09:21:49
original
3537 Les gens l'ont consulté

Cette fois, je vais vous montrer comment convertir la casse de la première lettre lorsque Jackson analyse une chaîne jsonstring, et comment convertir la casse de la première lettre lorsque Jackson analyse une chaîne json Remarque Quels sont les enjeux  ? Ci-dessous des cas pratiques.

Question

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 majuscules. Le nom de la colonne renvoyé par sqlquery est également RMBPrice en majuscules, mais. en utilisant jqueryLors de l'initialisation des colonnes des tables de données, une erreur s'est produite.

Le code de cette ligne est le suivant :

{"name": "RMBPrice", "data": "RMBPrice", "className": "text-center", "render": formatRMBPrice},
Copier après la connexion

Ceci sera affiché lors de l'ouverture de la page. Vérifiez que la valeur renvoyée par l'interface appelante 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, il ne peut donc y avoir un problème que lors de la conversion en json.

Si la première lettre de Baidu json est en majuscule, les articles seront automatiquement convertis en minuscules.

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

Par exemple : RRRddRRR deviendra rrrddRRR.

Solution

J'ai directement modifié la ligne de code en js pour :

{"name": "rmbprice", "data": "rmbprice", "className": "text-center", "render": formatRMBPrice},
Copier après la connexion

Après l'interrogation, 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 = "";
Copier après la connexion

fastjson utilise :

@JSONField(name = « Name ») Et la 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;
 }
}
Copier après la connexion

a également dit :

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

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le sujet. Site Web chinois PHP !

Lecture recommandée :

Comment fusionner les valeurs d'un objet JS

Angular exploite la table pour la trier

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!