国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 關(guān)于fastjson的@JSONField注解的一些問題(詳解)

關(guān)于fastjson的@JSONField注解的一些問題(詳解)

2020-08-13 11:40JAVA之家 Java教程

下面小編就為大家?guī)硪黄P(guān)于fastjson的@JSONField注解的一些問題(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

@JSONField

看源碼它可以作用于字段和方法上。

引用網(wǎng)上說的,

一、作用Field

@JSONField作用在Field時(shí),其name不僅定義了輸入key的名稱,同時(shí)也定義了輸出的名稱。

但是我在使用中,發(fā)現(xiàn)并不如上所說。

例如

?
1
2
@JSONField(name="project_id")
private Long ProjectID

發(fā)現(xiàn)bean 轉(zhuǎn)json的時(shí)候并是"project_id":xxx的形式,json轉(zhuǎn)bean的時(shí)候也不會(huì)把"project_id":xx的內(nèi)容設(shè)置到ProjectID的里面。

fastjson的版本是1.1.15

二、作用在setter和getter方法上 這種方式倒是在使用的過程當(dāng)中符合期望。

?
1
2
3
4
5
6
7
8
9
10
11
12
/**bean 轉(zhuǎn)json 時(shí)會(huì)把bean中的ProjectID轉(zhuǎn)換為project_id */
  @JSONField(name="project_id")
  public Long getProjectID() {
    return ProjectID;
  }
 
 
/**json 轉(zhuǎn)bean 時(shí)會(huì)把json中的project_id值賦值給projectID*/
  @JSONField(name="project_id")
  public void setProjectID(Long projectID) {
    ProjectID = projectID;
  }

三、@JSONField其它用法,查看@JSONField注解的源碼,除了name可用之外,還有format,serialize,deserialize,serialzeFeatures,parseFeatures可用,

•format,貌似用在Date類型的字段來格式化時(shí)間格式比較有用。

•serialize和deserialize是布爾類型的,用法為

?
1
2
@JSONField(serialize=false)
private Long ProjectID

就是在序列化的時(shí)候就不包含這個(gè)字段了。deserialize與之相反。但是有一點(diǎn)需要注意,我看其它地方說,當(dāng)字段為final的時(shí)候注解放在字段上是不起作用的,這時(shí)候應(yīng)該放在get

或set方法上。

•serialzeFeatures,我用到這個(gè)屬性,fastjson默認(rèn)的序列化規(guī)則是當(dāng)你的字段的值為null的時(shí)候,它是不會(huì)給你序列化這個(gè)字段的,例如我有一個(gè)這樣的需求,

?
1
{"fieldName":"project_id","operator":"is not","value":null}

一個(gè)對(duì)象序列化成這樣,我的代碼如下

?
1
2
3
4
CriteriaVO criteriaVO = new CriteriaVO();
    criteriaVO.setFieldName("project_id");
    criteriaVO.setOperator("is not");
    criteriaVO.setValue(null);

默認(rèn)的它只會(huì)序列化為如下結(jié)果

?
1
{"fieldName":"project_id","operator":"is not"}

當(dāng)然fastjson還是允許你控制一下序列化的規(guī)則的。

這就用到了SerializerFeature,這個(gè)一個(gè)枚舉,里面有好幾個(gè)值 ,具體的含義大家有興趣的可以了解一下,

我只是用到了其中一個(gè),

?
1
2
@JSONField(serialzeFeatures=SerializerFeature.WriteMapNullValue)
private String value;

這樣當(dāng)value的值為null的時(shí)候,依然會(huì)把它的值序列化出來。也就是下面的樣子,這就是我想要的結(jié)果

?
1
{"fieldName":"project_id","operator":"is not","value":null}

又遇到了另一個(gè)問題,當(dāng)字段類型為int類型時(shí),如

?
1
2
3
private int start;
private int limit;
 

我如果不set值的時(shí)候,會(huì)序列化為下面這樣

?
1
"limit":0,"start":0

默認(rèn)為都是0了,而我的目標(biāo)是如果不設(shè)置值的時(shí)候,它們不會(huì)出現(xiàn)。

我是簡(jiǎn)單地通過把他們的類型改為Integer了。應(yīng)該有其它通過自定義序列化行為的方式來解決,暫不研究。

以上這篇關(guān)于fastjson的@JSONField注解的一些問題(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线色综合| 精品96久久久久久中文字幕无 | 国产亚洲精品美女久久久久久久久久 | 亚洲网色| 欧美二区三区视频 | 久久久久久毛片免费看 | 欧美午夜三级视频 | 一区二区三区久久 | av中文字幕免费在线观看 | 国产羞羞视频在线观看 | av久久| 日韩小视频在线观看 | 91视频免费观看 | 视频一区在线 | 国产精品久久嫩一区二区免费 | 欧美在线观看黄 | 天天插天天狠 | 国产精品欧美一区二区三区不卡 | 国产美女一区 | 午夜影晥| 操视频网站| 黄色免费在线观看网址 | 久久亚洲欧美日韩精品专区 | 综合伊人久久 | 特黄特黄一级片 | 一区二区三区无码高清视频 | 日韩三级电影在线免费观看 | 激情国产 | 中文在线a在线 | 成人在线精品 | 精品一区二区在线观看 | 成人在线一区二区三区 | 成年人免费小视频 | 成人aaa毛片 | a∨色狠狠一区二区三区 | 日本狠狠干 | 亚洲视频一区二区三区在线观看 | 一区二区三区免费观看视频 | 欧美九九 | 国产综合精品一区二区三区 | 色噜噜狠狠狠综合曰曰曰 |