English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Problème
Le problème que le propriétaire du forum rencontre est que dans la classe d'entité et la table définies, un champ est RMBPrice avec la première lettre en majuscule, le nom de la colonne renvoyée par la requête sql est également RMBPrice en majuscules, mais lors de l'initialisation de la colonne avec jquery datatables, il y a une erreur.
Le code de cette ligne est le suivant :
{"name": "RMBPrice", "data": "RMBPrice", "className": "text-, "center", "render": formatRMBPrice},
Mais en ouvrant la page, cela s'affiche. Regardez la valeur de retour de l'interface appelée par le navigateur :
C'est minuscule rmbprice
Analyse
L'interface renvoie un objet @ResponseBody, en mettant un point d'arrêt dans le code, jusqu'à ce que la valeur de retour de l'interface soit en majuscules, donc cela ne peut être que un problème lors de la conversion en json.
Lorsque Baidu json met la première lettre en majuscule, un article de conversion automatique en minuscules apparaît.
Après test, c'est effectivement le cas, les premières lettres de tous les caractères sont en majuscules et sont converties en minuscules jusqu'à ce que ce ne soit plus le cas, si après il y a des majuscules, elles restent en majuscules.
Par exemple : RRRddRRR deviendra rrrddRRR.
Solution
Je modifie directement cette ligne de code dans le fichier js, en changeant :
{"name": "rmbprice", "data": "rmbprice", "className": "text-, "center", "render": formatRMBPrice},
Après enquête, pour conserver les majuscules, il faut ajouter l'annotation.
Par exemple, l'utilisation de Jackson :
Lors de la définition des champs de la classe d'entité :
@JsonProperty("ActionCode") private String ActionCode = "";
Utilisation de fastjson :
@JSONField(name = "Name") Etiquette ce marqueur devrait être marqué 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 a aussi été dit :
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 essayé aucune de celles-ci, car j'ai utilisé le nom automatiquement converti en minuscules. Si vous souhaitez conserver les majuscules, vous devrez chercher vous-même. ~9786;;9786;
La méthode que je partage avec vous aujourd'hui pour convertir automatiquement en minuscules les premières lettres des chaînes JSON parsing, c'est tout ce que j'ai à partager. J'espère que cela vous servira de référence et que vous soutiendrez davantage le tutoriel d'encouragement.
Déclaration : Le contenu de cet article est extrait du réseau, propriété de ses auteurs respectifs, contribué et téléversé par les utilisateurs d'Internet de manière spontanée. Ce site ne possède pas de propriété, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu suspect de violation de droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.)