ホームページ >ウェブフロントエンド >jsチュートリアル >ジャクソンが JSON 文字列を解析する方法について
以下に、Jackson が JSON 文字列を解析する方法を紹介します。最初の大文字は自動的に小文字に変換されます。これは良い参考値であり、皆さんのお役に立てれば幸いです。
問題
投稿者が遭遇した問題は、エンティティクラスとテーブルで定義されている特定のフィールドが RMBPrice であり、最初の文字が大文字であることですが、SQL クエリによって取得される列名も大文字の 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},
クエリの後、大文字を維持したい場合は、次のようにする必要があります。注釈を追加します。
たとえば、jackson は次を使用します:
エンティティクラスでフィールドを定義する場合:
@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());
ただし、私は小文字に自動変換した後の名前を使用しているため、上記は試していません。大文字を保持したい場合は、自分でさらに検索する必要があります~~☺☺
上記はあなたのためにまとめたものです。
関連記事:
VueコンポーネントToastにディスプレイボックスエフェクトを実装する方法
以上がジャクソンが JSON 文字列を解析する方法についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。