搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 嗨小叔的程序猿之路 > Json使用之FastJson(三)

Json使用之FastJson(三)

嗨小叔的程序猿之路 2018-10-30

一、API

    Fastjson入口类是com.alibaba.fastjson.JSON, 主要API是JSON.toJSONString和parseObject,使用fastjson要注意要转换的类必须有默认的无参构造方法。    

  • 序列化 : String jsonString = JSON.toJSONString(obj);

  • 反序列化 :VO vo = JSON.parseObject("jsonString", VO.class);

  • 泛型反序列化 :List<VO> list = JSON.parseObject("jsonString", new TypeReference<List<VO>>(){});(注:VO必须有默认无参构造方法)

其他API:

// 1、把JSON文本parse为JSONObject或者JSONArray 

    public static final Object parse(String text);

// 2、把JSON文本parse成JSONObject    

    public static final JSONObject parseObject(String text); 

// 3、把JSON文本parse为JavaBean 

    public static final <T> T parseObject(String text, Class<T> clazz); 

// 4、把JSON文本parse成JSONArray 

    public static final JSONArray parseArray(String text);

// 5、把JSON文本parse成JavaBean集合 

    public static final <T> List<T> parseArray(String text, Class<T> clazz); 

 // 6、将JavaBean序列化为JSON文本 

    public static final String toJSONString(Object object);

 // 7、将JavaBean序列化为带格式的JSON文本 

    public static final String toJSONString(Object object, boolean prettyFormat); 

// 8、将JavaBean转换为JSONObject或者JSONArray。

    public static final Object toJSON(Object javaObject); 

注:SerializeWriter:相当于StringBuffer ;JSONArray:相当于List ;JSONObject:相当于Map

二、FastJson对于json格式字符串的解析主要用到了一下三个类:

  • JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。

  • JSONObject:fastJson提供的json对象。

  • JSONArray:fastJson提供json数组对象。

三、Fastjson的SerializerFeature序列化属性

    有时候进行JSON转换的时候,null对应的key已经被过滤掉;如果我们不想要过滤的化,那么我们就需要用到fastjson的SerializerFeature序列化属性

    也就是这个方法:JSONObject.toJSONString(Object object, SerializerFeature... features)

    

  • QuoteFieldNames:输出key时是否使用双引号,默认为true

  • WriteMapNullValue:是否输出值为null的字段,默认为false 

  • WriteNullNumberAsZero:数值字段如果为null,输出为0,而非null 

  • WriteNullListAsEmptyList字段如果为null,输出为[],而非null 

  • WriteNullStringAsEmpty字符类型字段如果为null,输出为”“,而非null 

  • WriteNullBooleanAsFalseBoolean字段如果为null,输出为false,而非null

四、项目实战(代码)

    依旧沿用之前(、)讲解的两个对象,大致如下所示,省略get\set方法

Json使用之FastJson(三)

2、转换代码如下(各位可根据使用,写一个工具类来可能更简洁易懂写):

Json使用之FastJson(三)

Json使用之FastJson(三)

Json使用之FastJson(三)

3、运行结果:



版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《Json使用之FastJson(三)》的版权归原作者「嗨小叔的程序猿之路」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注嗨小叔的程序猿之路微信公众号

嗨小叔的程序猿之路微信公众号:gh_76f83bcccfe9

嗨小叔的程序猿之路

手机扫描上方二维码即可关注嗨小叔的程序猿之路微信公众号

嗨小叔的程序猿之路最新文章

精品公众号随机推荐