fastjson

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

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

        // 将实体类对象转换为 JSONObject
        JSONObject jsonObject = (JSONObject) JSONObject.toJSON(entity);

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;

你了解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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值