当我们需要在Java应用程序中处理JSON数据时,我们可以使用一个轻量级、高效的JSON库——FastJson。FastJson是阿里巴巴公司推出的一款高效的JSON处理工具,它具有易用性、快速性和智能型等特点。本文将详细介绍如何使用FastJson解析JSON数据。
安装和导入FastJson
我们可以通过Maven或手动下载和导入FastJson库。这里介绍Maven方式的导入:
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
</dependencies>
JSON数据解析
假设我们有以下JSON字符串:
{
"name": "张三",
"id": 100,
"sex": "男",
"age": 20,
"phone": "+8615865566778",
"address": {
"province": "广东",
"city": "深圳"
},
"hobby": ["篮球", "游泳", "跑步"]
}
我们可以按如下方式解析该JSON数据:
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;
public class ParseJson {
public static void main(String[] args) {
String jsonString = "{\"name\":\"张三\",\"id\":100,\"sex\":\"男\",\"age\":20,\"phone\":\"+8615865566778\",\"address\":{\"province\":\"广东\",\"city\":\"深圳\"},\"hobby\":[\"篮球\",\"游泳\",\"跑步\"]}";
JSONObject jsonObject = JSONObject.parseObject(jsonString);
String name = jsonObject.getString("name");
int id = jsonObject.getInteger("id");
String sex = jsonObject.getString("sex");
int age = jsonObject.getInteger("age");
String phone = jsonObject.getString("phone");
JSONObject address = jsonObject.getJSONObject("address");
String province = address.getString("province");
String city = address.getString("city");
JSONArray hobby = jsonObject.getJSONArray("hobby");
System.out.println("name: " + name);
System.out.println("id: " + id);
System.out.println("sex: " + sex);
System.out.println("age: " + age);
System.out.println("phone: " + phone);
System.out.println("province: " + province);
System.out.println("city: " + city);
System.out.println("hobby: " + hobby);
}
}
运行结果:
name: 张三
id: 100
sex: 男
age: 20
phone: +8615865566778
province: 广东
city: 深圳
hobby: ["篮球","游泳","跑步"]
高级用法
FastJson支持更高级的JSON操作,例如:解析含有日期类型的JSON数据、忽略null值、控制序列化/反序列化过程中属性的过滤等等。
下面是一个示例,将java.util.Date对象序列化为JSON数据,然后将其反序列化为Date对象:
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;
import com.alibaba.fastjson.parser.DefaultJSONParser;
import java.util.Date;
public class DateToJson {
public static void main(String[] args) {
Date currentDate = new Date();
SerializeWriter out = new SerializeWriter();
JSONSerializer serializer = new JSONSerializer(out);
serializer.write(currentDate);
String jsonString = out.toString();
System.out.println(jsonString);
DefaultJSONParser parser = new DefaultJSONParser(jsonString);
Date newDate = parser.parseObject(Date.class);
System.out.println(newDate);
}
}
运行结果:
1603825456598
Mon Oct 26 20:24:16 CST 2020
现在你已经了解了如何使用FastJson解析JSON数据。FastJson是一个很受欢迎的JSON库,它简单易用、高效快速,适用于大多数JSON数据操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java使用FastJson解析Json数据 - Python技术站