English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Problem
Das Problem, das der楼主 hatte, war, dass ein Feld in der Entitätsklasse und in der Tabelle als RMBPrice definiert war, der erste Buchstabe ist groß, der Spaltenname, der von der SQL-Abfrage zurückgegeben wird, ist ebenfalls groß RMBPrice, aber beim Initialisieren der Spalte mit jQuery datatables wird ein Fehler aufgetreten.
Dasze Zeile im Code sieht so aus:
{"name": "RMBPrice", "data": "RMBPrice", "className": "text-, "render": formatRMBPrice},
Die Seite wird jedoch diese Anzeige zeigen. Schauen Sie in den Wert zurück, den der Browser beim Aufruf des Interfaces zurückgibt:
Es ist der Kleinbuchstabe rmbprice
Analyse
Das Interface gibt ein @ResponseBody-Objekt zurück. Setzen Sie einen Breakpoint im Code, bis der Rückgabewert des Interfaces immer in Großbuchstaben ist, daher kann es nur ein Problem bei der Konvertierung in JSON sein.
Bei Baidu json wird das Artikel über die automatische Konvertierung in Kleinbuchstaben angezeigt.
Nach dem Test ist es tatsächlich so, dass alle aktuellen Großbuchstaben in Kleinbuchstaben umgewandelt werden, bis sie nicht mehr Großbuchstaben sind. Wenn nach dem Kleinbuchstaben wieder Großbuchstaben folgen, bleiben diese Großbuchstaben.
Zum Beispiel: RRRddRRR wird zu rrrddRRR.
Lösung
Ich habe direkt die Zeile im js geändert und geändert in:
{"name": "rmbprice", "data": "rmbprice", "className": "text-, "render": formatRMBPrice},
Nach der Überprüfung muss eine Anotation hinzugefügt werden, um Großbuchstaben zu behalten.
Zum Beispiel verwendet Jackson:
Beim Definieren von Feldern in der Entitätsklasse:
@JsonProperty("ActionCode") private String ActionCode = "";
fastjson verwendet:
@JSONField(name = "Name") Diese Markierung sollte vor dem get-Methode stehen;
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; } }
也有说:
强制转换,使用com.alibaba.fastjson.serializer.PascalNameFilter,直接将首字母转换为大写。例如:JSON.toJSONString(bean, new PascalNameFilter());
不过上面那些我都没有试过,因为我采用了自动转换为小写之后的name。想要保留大写还需要你们自己去多找找看哦~~;9786;9786;
以上这篇关于jackson解析json字符串,首字母大写会自动转为小写的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
声明:本文内容来源于网络,版权属于原作者。内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未进行人工编辑处理,也不承担相关法律责任。如果您发现涉嫌版权的内容,请发送邮件至:notice#oldtoolbag.com(在发送邮件时,请将#替换为@进行举报,并提供相关证据。一经查实,本站将立即删除涉嫌侵权的内容。)