前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >com.alibaba.fastjson简介及常用API

com.alibaba.fastjson简介及常用API

原创
作者头像
小明爱吃火锅
修改2024-06-13 15:10:28
2140
修改2024-06-13 15:10:28
举报
文章被收录于专栏:小明说Java小明说Java

一、fastjson简介

com.alibaba.fastjson是阿里巴巴集团开发的一款高性能、功能完善的Java JSON库。它提供了丰富的API,可以轻松地将Java对象序列化为JSON字符串,或将JSON字符串反序列化为Java对象。fastjson广泛应用于各种Java Web应用、移动应用以及大数据处理场景,具有稳定、高效、易用等特点。在平时开发中,一般需要吧接口响应数据装换成json返回给前端,所以fastjson使用范围还是很广的,也很频繁,所以本文主要来介绍fastjson常用API。

二、Maven引入

首先需要在pom文件引入依赖,也就是在Maven项目中使用fastjson,只需在项目的pom.xml文件中添加如下依赖:

代码语言:xml
复制
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.37</version> 
</dependency>

三、常用API详解

fastjson提供了简洁易用的API,支持将Java对象序列化为JSON字符串,以及将JSON字符串反序列化为Java对象。这一功能使得开发者能够轻松地在Java对象和JSON数据之间进行转换,满足前后端数据交互的需求。主要常用API如下:

1. 将对象序列化成JSON字符串

代码语言:java
复制
String com.alibaba.fastjson.JSON.toJSONString(Object object)

示例:

代码语言:java
复制
User user = new User("张三", 25);

String userJsonStr = JSON.toJSONString(user);

System.out.println(userJsonStr); // 输出:{"age":25,"name":"张三"}

注意:虽然示例中使用了JSONObject.toJSONString(user),但推荐使用JSON.toJSONString(object),因为JSON类是fastjson库的入口类,提供了更多功能和更好的兼容性。

2. 将JSON字符串反序列化成对象

代码语言:java
复制
<T> T com.alibaba.fastjson.JSON.parseObject(String text, Class<T> clazz)

示例:

代码语言:java
复制
String userJsonStr = "{\"age\":25,\"name\":\"张三\"}";

User user1 = JSON.parseObject(userJsonStr, User.class);

System.out.println(user1); // 输出:User{name='张三', age=25}

以上两钟其实算是开发中比较常用的了,对象转json字符串,json字符串转对象。

3. 将JSON字符串反序列化成JSON对象

com.alibaba.fastjson.JSONObject com.alibaba.fastjson.JSON.parseObject(String text)方法用于将JSON字符串反序列化为JSONObject对象。

示例:

代码语言:java
复制
String userJsonStr = "{\"age\":25,\"name\":\"张三\"}";
JSONObject userJsonObj = JSON.parseObject(userJsonStr);
System.out.println(userJsonObj); // 输出:{"age":25,"name":"张三"}

首先定义了一个JSON字符串,然后使用JSON.parseObject()方法将其反序列化为JSONObject对象。输出的JSONObject对象包含了JSON字符串中的所有键值对。

4. 根据key得到JSON中的JSON数组

com.alibaba.fastjson.JSONArray com.alibaba.fastjson.JSONObject.getJSONArray(String key)方法用于从JSONObject对象中获取指定key对应的JSON数组。

代码语言:java
复制
String userJsonStr = "{\"hobbies\":[\"篮球\",\"足球\"]}";
JSONObject userJsonObj = JSON.parseObject(userJsonStr);
JSONArray hobbies = userJsonObj.getJSONArray("hobbies");
System.out.println(hobbies); // 输出:["篮球","足球"]

首先定义了一个包含JSON数组的JSON字符串,然后使用JSON.parseObject()方法将其反序列化为JSONObject对象。接着,使用getJSONArray()方法获取了hobbies key对应的JSON数组。

5. 根据下标拿到JSON数组的JSON对象

com.alibaba.fastjson.JSONObject com.alibaba.fastjson.JSONArray.getJSONObject(int index)方法用于从JSONArray对象中获取指定下标的JSON对象。这个方法接受一个int类型的下标作为参数,并返回一个JSONObject对象。示例:

代码语言:java
复制
String userJsonStr = "{\"hobbies\":[{\"name\":\"篮球\",\"level\":\"业余\"},{\"name\":\"足球\",\"level\":\"专业\"}]}";
JSONObject userJsonObj = JSON.parseObject(userJsonStr);
JSONArray hobbies = userJsonObj.getJSONArray("hobbies");
JSONObject basketball = hobbies.getJSONObject(0);
System.out.println(basketball); // 输出:{"level":"业余","name":"篮球"}

在这个示例中,定义了一个包含JSON对象的JSON数组,然后使用JSON.parseObject()方法将其反序列化为JSONObject对象。使用getJSONArray()方法获取了hobbies key对应的JSON数组,最后使用getJSONObject()方法获取了数组中第一个JSON对象。

6. 根据key拿到JSON的字符串值

String com.alibaba.fastjson.JSONObject.getString(String key)方法用于从JSONObject对象中获取指定key对应的字符串值。示例:

代码语言:java
复制
String userJsonStr = "{\"name\":\"张三\",\"age\":\"25\"}";
JSONObject userJsonObj = JSON.parseObject(userJsonStr);
String name = userJsonObj.getString("name");
System.out.println(name); // 输出:张三

上述代码定义了一个包含字符串值的JSON字符串,然后使用JSON.parseObject()方法将其反序列化为JSONObject对象。然后使用getString()方法获取了name key对应的字符串值。

7. 根据key拿到JSON的int值

int com.alibaba.fastjson.JSONObject.getIntValue(String key)方法用于从JSONObject对象中获取指定key对应的整数值。这个方法接受一个String类型的key作为参数,并返回一个int类型的值。代码案例如下

代码语言:java
复制
String userJsonStr = "{\"name\":\"张三\",\"age\":25}";
JSONObject userJsonObj = JSON.parseObject(userJsonStr);
int age = userJsonObj.getIntValue("age");
System.out.println(age); // 输出:25

在案例代码中先定义了一个包含整数值的JSON字符串,然后使用JSON.parseObject()方法将其反序列化为JSONObject对象。然后使用getIntValue()方法获取了age key对应的整数值。

8. 根据key拿到JSON的boolean值

boolean com.alibaba.fastjson.JSONObject.getBooleanValue(String key)方法用于从JSONObject对象中获取指定key对应的布尔值。如下代码

代码语言:java
复制
String userJsonStr = "{\"name\":\"张三\",\"isStudent\":false}";
JSONObject userJsonObj = JSON.parseObject(userJsonStr);
boolean isStudent = userJsonObj.getBooleanValue("isStudent");
System.out.println(isStudent); // 输出:false

这是其实平时使用也是比较少的,大家可以了解一下就行。

以上就是fastjson简介及常用API,其实也不用强行记忆,平时开发孰能生巧。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、fastjson简介
  • 二、Maven引入
    • 三、常用API详解
      • 1. 将对象序列化成JSON字符串
      • 2. 将JSON字符串反序列化成对象
      • 3. 将JSON字符串反序列化成JSON对象
      • 4. 根据key得到JSON中的JSON数组
      • 5. 根据下标拿到JSON数组的JSON对象
      • 6. 根据key拿到JSON的字符串值
      • 7. 根据key拿到JSON的int值
      • 8. 根据key拿到JSON的boolean值
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档