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},
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},
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 = "";
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; } }
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!