fastjson使用教程

引入依赖

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.32</version>
</dependency>

序列化

序列化就是指 把JavaBean对象转成JSON格式的字符串。

1.一般对象序列化

 Map<String,Object> map = new HashMap<String,Object>();
 map.put("id","1");
 map.put("name","zhangsan");
 map.put("now", LocalDateTime.now());
 map.put("now1", new Date());
 map.put("nullVal", null);
 String s = JSON.toJSONString(map);

输出结果:{“now”:“2022-03-30T17:26:06.014”,“name”:“zhangsan”,“now1”:1648632366015,“id”:“1”}

2.list对象序列化

List<GridManagerVo> list = new ArrayList<>();
GridManagerVo vo = new GridManagerVo();
 vo.setId("123");
 GridManagerVo vo1 = new GridManagerVo();
 vo1.setId("12343");
 GridManagerVo vo2 = new GridManagerVo();
 vo2.setId("12323");
 list.add(vo);
 list.add(vo1);
 list.add(vo2);
 String jsonArray = JSON.toJSONString(list);

输出结果:[{“id”:“123”},{“id”:“12343”},{“id”:“12323”}]

3.指定SerializerFeature特性进行序列化

时间格式化

 String s2 = JSON.toJSONString(map, SerializerFeature.WriteDateUseDateFormat);

使用单引号

String s3 = JSON.toJSONString(map, SerializerFeature.UseSingleQuotes);

格式化

String s4 = JSON.toJSONString(map, SerializerFeature.PrettyFormat);

输出null值

String s5 = JSON.toJSONString(map, SerializerFeature.WriteMapNullValue);

输出class类型

String s6 = JSON.toJSONString(map, SerializerFeature.WriteClassName);
##这种情况就可以直接强制转换,因为带了class类型
Map res = (HashMap)JSON.parse(s6);

指定日期格式

 String s7 = JSON.toJSONStringWithDateFormat(map,"yyyy-MM-dd");

反序列化

反序列化就是把JSON格式的字符串转化为Java Bean对象。

1.反序列化为指定class类型

Map map1 = JSON.parseObject(s7, Map.class);

2.反序列化为list集合

List<GridManagerVo> gridManagerVos = JSON.parseArray(jsonArray, GridManagerVo.class);

@JSONField 注解

//指定name属性, 字段的名称
@JSONField(name = "gridId")
private String id;

//使用 ordinal属性, 指定字段的顺序
@JSONField(ordinal = -1)
private String loginName;

//使用 serialize属性, 指定字段不序列化
@JSONField(serialize = false)
private String name;

JSONObject,JSONArray

JSONObject,JSONArray为JSON的子类
JSONObject相当于Map<String, Object>
JSONArray相当于List< Object>

json字符串转JSONObject

String jsonStr="{'id':'1','name':'zhangsan'}";
JSONObject jsonObject = JSON.parseObject(jsonStr);
JSONObject jsonObject = new JSONObject(map);
jsonObject.put("jsonkey","jsonval");
System.out.println(jsonObject.get("id"));
System.out.println(jsonObject.get("jsonkey"));
JSONArray array = JSONArray.parseArray(JSON.toJSONString(list));
 array.forEach(arrayvo->{
     System.out.println(arrayvo);
 });

JSONObject转换成实体类

jsonObject.toJavaObject(User.class);

JSONArray转换成list集合

List<User> users= jsonArray.toJavaList(User.class)

自用json工具类

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;

public class MyJsonUtil {

    private static final SerializerFeature[] features = {
            SerializerFeature.WriteMapNullValue, // 输出空置字段
            SerializerFeature.WriteNullListAsEmpty,// list字段如果为null,输出为[],而不是null
            SerializerFeature.WriteNullNumberAsZero,//数值字段如果为null,输出为0,而不是null
            SerializerFeature.WriteNullBooleanAsFalse,//Boolean字段如果为null,输出为false,而不是null
            SerializerFeature.WriteNullStringAsEmpty,//字符类型字段如果为null,输出为"",而不是null
            SerializerFeature.WriteDateUseDateFormat //日期格式化yyyy-MM-dd HH:mm:ss
    };

    private static final String simpleDateFormat = "yyyy-MM-dd";


    public static String toJson(Object object){
        return JSON.toJSONString(object,features);
    }

    public static String toJsonWithSimpleDateFormat(Object object){
        return JSON.toJSONStringWithDateFormat(object,simpleDateFormat);
    }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大佬腿好粗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值