jsonobject轉實體類「json轉list對象集合」

之前業務開發時,有一個字段接收的數據是Json格式的,並且需要以Json形式入庫:

SpringBoot中如何讓List和Json自動互轉

數據庫中是這樣存儲的,這裡實際是一個Json數組。

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

如果這個數據你要存取,你會怎麼做?存入時,前端直接傳Json格式的數據給你。取出時,你可能會再將Json數據轉成List,以便做其他的操作。

但是在面向對象的思想中,這個Json數組中的每個元素就是一個對象,我們可不可以在代碼層中以List的形式存,然後以List的形式取出,中間的Json轉換有程序自動去做,不需要開發去手動轉。

當然有實現的方法,我們來看效果:

SpringBoot中如何讓List和Json自動互轉

我們在實體類中的這個字段寫成Lis形式的,在上面添加@ColumnType註解。這個註解用來實現List與Json之間的自動互轉。然後需要在Mapper.xml文件中配置:

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

我們在這個字段添加typeHandler。

這樣我們下代碼存數據的時候就是添加List而不是Json了。

SpringBoot中如何讓List和Json自動互轉

查看一下數據庫,已經自動轉成Json了:

SpringBoot中如何讓List和Json自動互轉

我們取出時,只需要直接查詢,不需要做別的處理,返回的就是List了。

SpringBoot中如何讓List和Json自動互轉

是不是存取很方便。

現在我們來看看字段註解中
SurveyConclusionTemplateTypeHandler這個轉換類。

SpringBoot中如何讓List和Json自動互轉

這裡用到了JsonTypeHandler,並且指定了實體類。

我們來看看JsonTypeHandler。

SpringBoot中如何讓List和Json自動互轉

主要是做Json的處理。完整代碼可以上網自行下載。

好了這篇文章就到這裡啦,希望對大家有幫助。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/209409.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 15:36
下一篇 2024-12-08 15:36

相關推薦

發表回復

登錄後才能評論