fastjson常用操作

喜欢开源

对阿里的东西都很感兴趣,在这个json 大行其道的年代,这次整理一下fastjson

下载地址:点击打开链接

操作文档和中文手册,maven依赖,常用问题 都在这里:点击打开链接


下面要谈的是我的实际操作和理解

1、对他的了解源于很久以前 我们的项目有一段关于alibaba.json的报错,从此就用起来这个东西,感觉还不错,效率挺高

接下来我只粘贴具体操作的代码,其余复制代码详见我的GitHub

生命一下参数列表中的group 、FastJsonGroup 均是实体bean

对象转json(序列化)

  • 对象转json 赤裸裸的
	String json2String = JSON.toJSONString(group);

  • 对象转json带上空值(如果值为空,输出null)
	String json2StringWithNull = JSON.toJSONString(group, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullListAsEmpty);
  • 对象转json格式化时间
        /**
	  *   带时间格式化的输出
	  *   识别的时间格式(来自官方文档)
          *   ISO-8601日期格式
	  *   yyyy-MM-dd
          *   yyyy-MM-dd HH:mm:ss
	  *   yyyy-MM-dd HH:mm:ss.SSS
	  *   毫秒数字
	  *   毫秒数字字符串
	  *   .NET JSON日期格式
	  *   new Date(198293238)
	*/
	String json2StringWithDateFormat1 = JSON.toJSONStringWithDateFormat(group, "yyyy-MM-dd HH:mm:ss.SSS");//(2017-03-17 11:34:00.203)
	String json2StringWithDateFormat2 = JSON.toJSONString(group, SerializerFeature.UseISO8601DateFormat);//2017-03-17T11:38:46.407+08:00
            官方给了一个设置全局更改时间的方案:
            
	JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
	String json2StringWithDateFormat3 = JSON.toJSONString(group, SerializerFeature.WriteDateUseDateFormat);
		
         字符串转对象(对象反序列化)
  • 字符串转对象(赤裸裸)
	FastJsonGroup backGroup =JSON.parseObject(json2StringWithDateFormat3,FastJsonGroup.class);
  • 对生成的json字符串进行指定(比如要把实体属性的id,转化为ID输出为json)
	/**
	 * 使用@JSONField配置 进行定制序列化
	 * 自定义返回在JSON传中的字段样式
         * 这样更改不会影响序列化和反序列化的操作
	 */
	 @JSONField(name="ID")
	 private Long   id;
	 
	 @JSONField(name="Name")
	 private String name;
	 
	// 配置date序列化和反序列使用yyyyMMdd日期格式
	 @JSONField(format="yyyyMMdd")
	 private Date dateTime;
	 
	 //指定字段不序列化
	 @JSONField(serialize=false)
	 private String sex;
	 
	 //指定字段的顺序
	 @JSONField(ordinal = 1)
	 private String order;
以上的@JSONField 在每个属性上只能用一个 ,写多个就报错
在反序列化时,如果没成功看一下 是不是你的json中 双引号之间有空格,有的话就会失败,这个折磨了我好久
大文件序列化和反序列化
我看了官方文档,大体就是数组和对象两种情况,例子是用对象转化到指定文件的json串 和指定json传转化为对象的形式,这里就不贴我的代码了
文档中还提到了对指定jsons输出前筛选的问题,通过类和函数的形式,个人认为程序中判断,直接调用转fastjson转化更好一点,突出这个工具的纯粹性,
当然了如果4他的处理效率高于你的代码,那建议用这个 官方的例子

      




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: fastjson 是一款基于 Java 的高性能 JSON 解析库,它可以将 JSON 字符串转换为 Java 对象或将 Java 对象转换为 JSON 字符串。如果你需要在你的 Java 项目中使用 fastjson,你需要在项目的构建文件中添加 fastjson 的依赖。 如果你使用 Maven 管理项目,可以在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> ``` 如果你使用 Gradle 管理项目,可以在 build.gradle 文件中添加以下依赖: ```groovy implementation 'com.alibaba:fastjson:1.2.62' ``` 请注意,上述示例中的版本号可能已过时,你需要根据实际情况选择最新版本。 ### 回答2: fastjson是一个Java语言编写的高性能JSON处理器,常用于进行JSON数据的序列化和反序列化操作。它提供了简单易用的API,使得开发者能够快速地将Java对象转换为JSON格式的字符串,并且能够将JSON格式的字符串转换为Java对象。 fastjson具有较高的处理速度和较低的内存占用,相比其他JSON处理库,它的性能更优。它在处理大量数据时能够更加高效地完成任务,提升了系统的整体性能。此外,fastjson还具有很好的兼容性,能够与各种Java应用程序进行良好的集成。 在使用fastjson时,我们需要将fastjson相关的依赖项添加到项目中。首先需要在项目的构建配置文件(如pom.xml)中添加fastjson的依赖项,指定所需的版本号。例如: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.70</version> </dependency> ``` 在完成依赖项的添加后,我们就可以在代码中使用fastjson提供的API进行JSON数据的处理操作。通常可以通过以下步骤完成JSON数据的序列化和反序列化操作: 1. 将Java对象转换为JSON字符串:使用fastjson提供的`toJSONString`方法将Java对象转换为JSON格式的字符串。 2. 将JSON字符串转换为Java对象:使用fastjson提供的`parseObject`方法将JSON格式的字符串转换为Java对象。 除了基本的序列化和反序列化操作fastjson还提供了其他一些常用的功能,如JSON数据的格式化输出、对JSON对象的操作(如增加、删除、修改属性等)、将JSON数据转换为List、Map等集合类型等。 总之,fastjson作为一个高性能的JSON处理器,依赖项的添加是使用fastjson的前提,能够帮助我们更方便地进行JSON数据的处理操作,提升系统的性能。 ### 回答3: fastjson是一个用于Java语言的高效的JSON处理工具,它具有快速、简洁、安全的特点。使用fastjson可以方便地进行JSON和Java对象之间的转换。 首先,fastjson是一个轻量级的JSON库,它具有出色的解析和序列化性能。相比于其他JSON处理工具,fastjson在处理大数据量的情况下表现更好,能够更快速地完成JSON数据的解析和生成。 其次,fastjson提供了简洁易用的API,使得我们能够快速地进行JSON和Java对象之间的相互转换。它支持将Java对象转换为JSON字符串,也支持将JSON字符串转换为Java对象,非常方便实用。同时,fastjson还支持自定义的序列化和反序列化方式,可以满足特定的需求。 此外,fastjson还具有较高的安全性。它采用了黑名单和白名单的机制,可以对输入的JSON数据进行有效的过滤,以防止安全漏洞的产生。这种机制能够有效地防止一些恶意攻击,保障系统的安全性。 总结来说,fastjson是一款优秀的JSON处理工具,它快速、简洁、安全,适用于各种场景下的JSON处理需求。无论是在处理大数据量的情况下,还是在保障系统安全性的需求下,fastjson都是一个值得信赖的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值