エンティティクラスのList属性をJsonに自動的に変換し、SpringBootのライブラリに変換する方法

以前のビジネス開発では、フィールドが受信したデータはJson形式であり、Json形式で保存する必要がありました。

画像

これはデータベースに保存されます。これは実際にはJson配列です。

[
  {
    "label": "result1",
    "name": "较好",
    "readonly": false
  },
  {
    "label": "result2",
    "name": "一般",
    "readonly": false
  },
  {
    "label": "result3",
    "name": "较差",
    "readonly": false
  },
  {
    "label": "result4",
    "name": "极差",
    "readonly": false
  }
]

このデータにアクセスしたい場合は、どうしますか?保存すると、フロントエンドからJson形式でデータが直接送信されます。取り出すときに、Jsonデータを他の操作用のリストに変換できます。

しかし、オブジェクト指向の考え方では、このJson配列の各要素はオブジェクトであり、コードレイヤーにリストの形式で保存してから、リストの形式で取り出すことができます。中間のJson変換は自動的に行われます。プログラムによって行われ、手動で転送するために開発する必要はありません。

もちろん、それを達成する方法はあります。効果を見てみましょう。

画像

このフィールドをエンティティクラスにLis形式で記述し、@ColumnTypeコメントを追加します。このアノテーションは、ListとJson間の自動変換を実現するために使用されます。次に、Mapper.xmlファイルで構成する必要があります。

<result column="survey_conclusion_options" property="surveyConclusionOptions" typeHandler="com.xxx.SurveyConclusionTemplateTypeHandler" />

このフィールドに追加しますtypeHandler

このように、データを保存するためのコードをダウンロードするときに、Jsonの代わりにListを追加します。

画像

データベースを確認してください。自動的にJsonに変換されています。

取り出すときは、直接クエリを実行するだけで、他の処理を行う必要はありません。返されるのはリストです。

画像

アクセスは簡単ですか。

次にSurveyConclusionTemplateTypeHandlerフィールドアノテーションでこの変換クラスを見てみましょう

画像

ここJsonTypeHandler使用し、エンティティクラスを指定します。

見てみましょうJsonTypeHandler

画像

主にJson処理を行います。完全なコードはオンラインでダウンロードできます。

さて、この記事はここで終わります、私はそれが皆に役立つことを願っています。

おすすめ

転載: blog.csdn.net/wujialv/article/details/112215094