今回は、Jackson が JSON 文字列を解析するときに最初の文字を大文字と小文字に変換する方法を説明します。 以下は実際的なケースです。一見。
質問投稿者が遭遇した問題は、エンティティ クラスとテーブルで定義されている特定のフィールドが RMBPrice であり、sqlquery
によって返される列名も大文字の RMBPrice ですが、jquery のデータテーブルを使用する場合に発生します。列を初期化しても問題が発生しました。 そのコード行は次のとおりです:
{"name": "RMBPrice", "data": "RMBPrice", "className": "text-center", "render": formatRMBPrice},
ページを開くとこのように表示されます。ブラウザ呼び出しインターフェースによって返される値を確認してください
は小文字のrmbpriceです
分析
インターフェイスは @ResponseBody オブジェクトを返します。コード内のブレークポイントから、インターフェイスの戻り値はすべて大文字であるため、JSON に変換する場合にのみ問題が発生する可能性があります。
Baidu json の最初の文字が大文字の場合、記事は自動的に小文字に変換されます。 テストした結果、現在のすべて大文字であるいくつかの文字は、大文字でなくなるまで小文字に変換されます。小文字の後に大文字がある場合は、大文字のままになります。 例: RRRddRRR は rrrddRRR になります。 解決策js のコード行を直接変更して、次のように変更しました:
{"name": "rmbprice", "data": "rmbprice", "className": "text-center", "render": formatRMBPrice},
たとえば、ジャクソンは次のように使用します:
エンティティクラスでフィールドを定義する場合:
@JsonProperty("ActionCode") private String ActionCode = "";
fastjson は以下を使用します:
@JSONField(name = “Name”) そして、このタグは 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; } }
強制変換
、com.alibaba.fastjson.serializer.PascalNameFilter を使用して最初の文字を大文字に直接変換します。例: JSON.toJSONString(bean,new PascalNameFilter());この記事の事例を読んだ後は、このメソッドを習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:JS でオブジェクトの値をマージする方法
以上がJackson が JSON 文字列を解析するときに最初の文字の大文字と小文字を変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。