fastjson 用法
Fastjson是一个Java语言编写的高性能JSON处理库,可以将Java对象序列化为JSON格式字符串,并将JSON格式字符串反序列化为Java对象。Fastjson的设计理念是简单高效,API简单易用,具有高性能和低内存消耗的特点,在大数据处理和高并发场景下表现优异。本文将详细介绍Fastjson的用法,帮助你更好地使用Fastjson完成JSON数据处理任务。
一、Fastjson核心API
1. 序列化
Fastjson的序列化功能非常强大,可以将Java对象转换为JSON格式字符串,并支持多种数据类型的序列化。下面是Fastjson序列化的核心API:
```java
String jsonString = JSONString(object);
```
object是Java对象,JSONString是Fastjson的核心序列化函数,用于将Java对象转换为JSON格式字符串。使用JSONString可以实现简单的Java对象转换为JSON字符串的操作,例如:
```java
Student student = new Student("Tom", 18, "male");
String jsonStr = JSONString(student);
System.out.println(jsonStr);
```
上述代码会将Student对象转换为JSON格式的字符串,输出结果为:
```json
{"age":18,"gender":"male","name":"Tom"}
```
2. 反序列化
Fastjson的反序列化功能也非常强大,可以将JSON格式字符串转换为Java对象,并支持多种数据类型的反序列化。下面是Fastjson反序列化的核心API:
```java
T object = JSON.parseObject(jsonString, T.class);
```
jsonString是JSON格式字符串,T是Java对象类型,JSON.parseObject是Fastjson的核心反序列化函数,用于将JSON格式字符串转换为Java对象。使用JSON.parseObject可以实现简单的JSON字符串转换为Java对象的操作,例如:
```java
String jsonStr = "{\"age\":18,\"gender\":\"male\",\"name\":\"Tom\"}";
Student student = JSON.parseObject(jsonStr, Student.class);
System.out.String());
```
上述代码会将JSON格式的字符串转换为Student对象,输出结果为:
```json
Student{name='Tom', age=18, gender='male'}
```
3. JSON数组和JSON对象
Fastjson还支持JSON数组和JSON对象的创建和处理。下面是Fastjson操作JSON数组和JSON对象的核心API:
(1)创建JSON数组
```java
JSONArray jsonArray = new JSONArray();
// 在JSON数组中添加Java值
jsonArray.add(new Integer(1));
jsonArray.add(new Double(2.34));
jsonArray.add(new String("abc"));
// 打印JSON数组信息
fastjson怎么用 System.out.JSONString());
```
上述代码创建了一个JSON数组,并向其中添加了三个Java值(一个整数、一个双精度浮点数和一个字符串)。使用JSONArray的toJSONString()方法将JSON数组转换为JSON格式
的字符串输出。
(2)创建JSON对象
```java
JSONObject jsonObject = new JSONObject();
// 在JSON对象中添加键值对
jsonObject.put("name", "Tom");
jsonObject.put("age", 18);
jsonObject.put("gender", "male");
// 打印JSON对象信息
System.out.JSONString());
```
上述代码创建了一个JSON对象,并向其中添加了三个键值对(一个字符串类型的“name”键,一个整数类型的“age”键和一个字符串类型的“gender”键)。使用JSONObject的toJSONString()方法将JSON对象转换为JSON格式的字符串输出。
4. JSON字符串格式化
Fastjson支持对JSON字符串进行格式化操作,使JSON字符串易于阅读和理解。使用Fastjson的JSONObject和JSONArray类提供的toJSONString()方法可以将JSON字符串格式化,以便于查看和调试。实现方法如下:
(1)JSONObject格式化打印
```java
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "Tom");
jsonObject.put("age", 18);
jsonObject.put("gender", "male");
String jsonStr = JSONString();
// 将JSON字符串格式化输出
System.out.JSONString(JSON.parse(jsonStr), true));
```
上述代码创建了一个JSON对象,并使用toJSONString()函数将其转换为JSON字符串。接下来,将JSON字符串转换为JSON对象,并使用JSONString()进行格式化输出。格式化输出的结果如下:
```json
{
"age":18,
"gender":"male",
"name":"Tom"
}
```
(2)JSONArray格式化打印
```java
JSONArray jsonArray = new JSONArray();
jsonArray.add(new Integer(1));
jsonArray.add(new Double(2.34));
jsonArray.add(new String("abc"));
String jsonStr = JSONString();
// 将JSON字符串格式化输出
System.out.JSONString(JSON.parse(jsonStr), true));
```
上述代码创建了一个JSON数组,并使用toJSONString()函数将其转换为JSON字符串。接下来,将JSON字符串转换为JSON数组,并使用JSONString()进行格式化输出。格式化输出的结果如下:
```json
[
1,
2.34,
"abc"
]
```
二、Fastjson高级用法
1. 序列化和反序列化配置
Fastjson提供了大量的序列化和反序列化配置选项,可以用于控制JSON格式化输出、日期格式、循环引用、字段筛选、JSON格式和Java对象之间的映射等。下面是Fastjson序列化和反序列化的常用配置:
(1)修改日期格式
使用Fastjson序列化和反序列化Java对象时,日期类型默认序列化为long类型的时间戳。可以通过修改序列化和反序列化配置来控制日期格式的输出。示例代码如下:
```java
// 时间格式化
FastDateFormat dateFormat = Instance("yyyy-MM-dd HH:mm:ss");
GlobalInstance().put(Date.class, new SimpleDateFormatSerializer(dateFormat));
GlobalInstance().putDeserializer(Date.class, new SimpleDateFormatDeserializer(dateFormat));
```
上述代码修改了日期的序列化和反序列化配置,将Date类型转换为指定格式的日期字符串。
(2)属性过滤
Fastjson支持通过参数,过滤某些不需要序列化或不需要反序列化的属性。示例代码如下:
```java
// 过滤属性
SerializeWriter writer = new SerializeWriter();
SerializeConfig config = new SerializeConfig();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论