com.alibaba.fastjson.JSON

定义

json是一种轻量级的数据交换格式,分为json数组和json对象。json数组和json对象可以互相嵌套

JSON数组特点
  1. 使用中括号包裹
  2. 元素之间使用逗号分隔
  3. 元素的数据类型没有限制
    获取元素的方式:通过索引可以访问json数组中的元素(索引从0开始)
    示例:json = [“aaa”, 1, true]
JSON对象特点
  1. 使用大括号包裹
  2. 元素必须是键值对(键必须是字符串类型,值的类型没有限制)
  3. 键值对之间使用逗号分隔
    获取值的方式:通过 .键名获取
    示例:json = {“a”:“aaa”, “b”:123, “c”:true}
常用的json解析库

FastJson:阿里巴巴开源的json解析库,支持将java bean序列化为json字符串,也可以把json字符串反序列化为java bean

序列化

把java对象转成json格式字符串的过程

反序列化

把json格式字符串转成java对象的过程

fastJson的使用

序列化API
String jsonString = JSON.toJSONString(Object obj)
返回json格式的字符串,支持list,set, map,java对象

反序列化API
json—java对象
Student stu = JSON.parseObject(json数据,对象.class)
json—list集合
List list = JSON.parseArray(json数据,集合泛型的class对象);
json—map集合
Map<String, Student> map = JSON.parseObject(json数据, new TypeReference<Map<String, Student>>(){})
创建new TypeReference需使用匿名内部类

枚举 SerializerFeature

格式: String jsonString = JSON.toJSONString(student, >SerializerFeature.WriteMapNullValue);
WriteMapNullValue 序列化类中null值的属性,基本数据类型等于默认值,包装类>等于null
WriteNullStringAsEmpty 属性值为null时序列化为“”
WriteNullNumberAsZero 属性值为null时序列化为0
WriteNullBooleanAsFalse 属性值为null时序列化为false
WriteDateUseDateFormat 格式化日期 把毫秒值转成 yyyy-MM-dd HH:mm:ss格式
PrettyFormat 格式化 横向输出的数据变为纵向

注解 JsonField

作用于方法,字段,参数上,在序列化和反序列化时进行特性功能定制
格式:@JsonField(name=“zhangsan”)
name:指定序列化后的名字
ordinal:指定序列化后的顺序
format:指定序列化后的格式
serialize:是否序列化该字段
deserialize:是否反序列化该字段
serialzeFeatures:序列化时的特性定义(与枚举的功能相同)

注解 JsonType

只可以作用在类上
格式:JSONType(includes = {"","",""})
includes:指定要被序列化的字段(优先级高于serialize)
ignores:指定不需要被序列化的字段
orders:指定序列化的顺序
serialzeFeatures:与上面的枚举一致

注意:
  1. FastJson默认情况下不会对空值null做序列化
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值