阿里巴巴的FashJson的使用

本文介绍了阿里巴巴开源的FastJSON工具,包括其简介、安装Maven依赖、简单使用以及SerializerFeature属性的配置,展示了如何在项目开发中高效处理Json转换问题。
摘要由CSDN通过智能技术生成


前言

在项目开发中,需要跟前端进行联调的时候,我们常遇到Json转换问题,Json转对象、对象转Json等问题。下面将介绍解决该问题其中的一种工具,阿里巴巴开源的Json处理工具FashJson。


一、FastJSON简介

FastJSOn是阿里巴巴开源的JSON处理工具,大家可以尝试使用一下。

官网地址:http://code.alibabatech.com/wiki/display/FastJSON/Overview
Fastjson是一个json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parser。包括自称最快的jackson。
功能强大,完全支持java bean、集合、Map、日期、Enum,支持范型,支持自省。
无依赖,能够直接运行在Java SE 5.0以上版本
支持Android。
开源 (Apache 2.0)

二、使用步骤

1.安装Maven依赖

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

2.简单使用

代码如下(示例):

       //1.序列化,Json字符串
        Stu stu = new Stu();
        stu.setName("xiao");
        stu.setSno(11);
        String jsonString = JSON.toJSONString(stu);
        //2.反序列化,Json转对象
        Stu stu1 = JSON.parseObject(jsonString, Stu.class);
        List<Stu> list=new ArrayList<>();
        list.add(stu);
        
        
         //3.数组转换成字符串
        String jsonString1 = JSONArray.toJSONString(list);
        
        //4.字符串转换成为数组
        List<Stu> stus = JSONArray.parseArray(jsonString1, Stu.class);

主要这里方法调用比较简单,就不详细介绍

3.SerializerFeature属性的处理

SerializerFeature属性

public enum SerializerFeature {
    QuoteFieldNames,
    UseSingleQuotes,
    WriteMapNullValue,
    WriteEnumUsingToString,
    WriteEnumUsingName,
    UseISO8601DateFormat,
    WriteNullListAsEmpty,
    WriteNullStringAsEmpty,
    WriteNullNumberAsZero,
    WriteNullBooleanAsFalse,
    SkipTransientField,
    SortField,
    /** @deprecated */
    @Deprecated
    WriteTabAsSpecial,
    PrettyFormat,
    WriteClassName,
    DisableCircularReferenceDetect,
    WriteSlashAsSpecial,
    BrowserCompatible,
    WriteDateUseDateFormat,
    NotWriteRootClassName,
    /** @deprecated */
    DisableCheckSpecialChar,
    BeanToArray,
    WriteNonStringKeyAsString,
    NotWriteDefaultValue,
    BrowserSecure,
    IgnoreNonFieldGetter,
    WriteNonStringValueAsString,
    IgnoreErrorGetter,
    WriteBigDecimalAsPlain,
    MapSortField;

这些是FastJSON库中JSON配置的一些选项,每个选项都对应着不同的功能或行为。以下是对这些选项的简要说明:

选项描述
QuoteFieldNames输出key时是否使用双引号,默认为true
UseSingleQuotes使用单引号而不是双引号,默认为false
WriteMapNullValue是否输出空置的字段,默认为false
WriteEnumUsingToStringEnum输出name()或者original,默认为false
WriteEnumUsingNameEnum输出name()或者original,默认为true
UseISO8601DateFormatDate使用ISO8601格式输出,默认为true
WriteNullListAsEmptyList字段如果为null,输出为[],而非null,默认为false
WriteNullStringAsEmpty字符类型字段如果为null,输出为"",而非null,默认为false
WriteNullNumberAsZero数值字段如果为null,输出为0,而非null,默认为false
WriteNullBooleanAsFalseBoolean字段如果为null,输出为false,而非null,默认为false
SkipTransientField是否跳过transient字段,默认为true
SortField按字段名称排序后输出,默认为false
WriteTabAsSpecial把\t做转义输出,默认为false
PrettyFormat结果是否格式化,默认为false
WriteClassName序列化时写入类型信息,默认为true
DisableCircularReferenceDetect消除对同一对象循环引用的问题,默认为false
WriteSlashAsSpecial对斜杠’/'进行转义,默认为false
BrowserCompatible将中文都会序列化为Unicode,默认为false
WriteDateUseDateFormat全局修改日期格式,默认为false
NotWriteRootClassName不输出根类型,默认为false
DisableCheckSpecialChar校验ASCII字符,只输出能显示的字符,默认为false
BeanToArray将对象转为array输出,默认为false
WriteNonStringKeyAsString使用非String类型作为key时,转义为String,默认为false
NotWriteDefaultValue不输出null字段,默认为false
BrowserSecure防止循环引用,默认为false
IgnoreNonFieldGetter忽略没有getter的字段,默认为false
WriteNonStringValueAsString将非String类型的值输出为String,默认为false
IgnoreErrorGetter在遇到错误的getter时,输出错误信息,默认为false
WriteBigDecimalAsPlainBigDecimal输出为普通数字,默认为false
MapSortField输出Map时对key进行排序操作,默认为false

您可以根据需要设置这些选项来定制FastJSON库在序列化和反序列化时的行为

总结

以上就是今天要讲的内容,本文简单介绍了FashJson的使用,FashJson是强大的Json处理工具,能方便我们跟前端进行数据的联调,是开发中必不可少的的一种工具.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值