当前位置:   article > 正文

fastjson_jsonfield注解 坑

jsonfield注解 坑

要将一个实体类转换为 com.alibaba.fastjson.JSONObject

YourEntityClass entity = new YourEntityClass(); // 假设这是你的实体类对象

        // 将实体类对象转换为 JSONObject
        JSONObject jsonObject = (JSONObject) JSONObject.toJSON(entity);
  • 1
  • 2
  • 3
  • 4

JSONField

import com.alibaba.fastjson.annotation.JSONField;
/**
 * @Describle:
 * @Author:leiwang15
 */
public class BatchGetRelatedInfo {


    @JSONField(name = "device_sum")
    Integer deviceSum;

    @JSONField(name = "online_sum")
    Integer onlineSum;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

你了解json

JSON就是一串字符串 只不过元素会使用特定的符号标注。

{} 双括号表示对象

[] 中括号表示数组

“” 双引号内是属性或值
冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

所以 {“name”: “Michael”} 可以理解为是一个包含name为Michael的对象

而[{“name”: “Michael”},{“name”: “Jerry”}]就表示包含两个对象的数组

当然了,你也可以使用{“name”:[“Michael”,“Jerry”]}来简化上面一部,这是一个拥有一个name数组的对象

官方约束

JSON官网最新规范规定,如果是字符串,那不管是键或值最好都用双引号引起来

开发约束

001 :需要进行序列化的实体不要参入其他方法,只是写自己的各种属性。
002:属性名称遵循驼峰命名,正例:fatherName 反例:FATHERNAME
003:使用lombok的@Data进行标注,不用自动生成的get set方法

坑1:

在这里插入图片描述
没有使用驼峰命名,大写的FATHERNMAE变为了fATHERNAME
这个坑可以使用@JSONField(ordinal = 1,name = “BBB”)来解决

坑2:

在这里插入图片描述
在这里插入图片描述
这个坑可以使用lombok的@Data解决

坑3:

在这里插入图片描述
所以,使用json化为字符串的时候要注意这样:
在这里插入图片描述

SerializerFeature

QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null

SerializerFeature.WriteNullStringAsEmpty
想字符类型字段如果为null,转换输出为”“,而非null ,需要多加一个参数:WriteNullStringAsEmpty

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/982469
推荐阅读
相关标签
  

闽ICP备14008679号