ホームページ  >  記事  >  ウェブフロントエンド  >  Jackson が JSON 文字列を解析するときに最初の文字の大文字と小文字を変換する方法

Jackson が JSON 文字列を解析するときに最初の文字の大文字と小文字を変換する方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-14 09:21:493526ブラウズ

今回は、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 でオブジェクトの値をマージする方法


Angular はテーブルを操作して並べ替えます

以上がJackson が JSON 文字列を解析するときに最初の文字の大文字と小文字を変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。