fastjson 选择器
时间: 2023-09-25 14:07:22 浏览: 49
Fastjson 是一个 Java 语言编写的高性能功能完善的 JSON 库。在 Fastjson 中,选择器(Selector)用于根据 JSON 字符串中的字段值获取对应的 Java 对象或者数组元素。
以下是使用 Fastjson 选择器的示例:
假设我们有以下 JSON 字符串:
```json
{
"user": {
"name": "张三",
"age": 30,
"address": {
"city": "北京", "street": "朝阳路"
}
}
}
```
首先,我们需要创建一个 Java 类来表示 JSON 数据结构:
```java
public class User {
private String name;
private int age;
private Address address;
// getter 和 setter 省略
}
public class Address {
private String city;
private String street;
// getter 和 setter 省略
}
```
然后,我们可以使用 Fastjson 的选择器功能来解析 JSON 字符串并获取相应的 Java 对象或数组元素:
```java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
public class FastjsonDemo {
public static void main(String[] args) {
String jsonStr = "{\"user\":{\"name\":\"张三\",\"age\":30,\"address\":{\"city\":\"北京\",\"street\":\"朝阳路\"}}}";
User user = JSON.parseObject(jsonStr, User.class); // 根据 JSON 字符串和目标类反序列化为 Java 对象
System.out.println("姓名:" + user.getName()); // 输出:姓名:张三
System.out.println("年龄:" + user.getAge()); // 输出:年龄:30
System.out.println("城市:" + user.getAddress().getCity()); // 输出:城市:北京
System.out.println("街道:" + user.getAddress().getStreet()); // 输出:街道:朝阳路
}
}
```
在这个例子中,我们使用了 `JSON.parseObject()` 方法将 JSON 字符串解析为 `User` 类的实例。Fastjson 会自动根据 JSON 字符串中的字段值设置 Java 对象的相应属性。如果 JSON 字符串中包含嵌套的对象或数组,可以使用选择器来访问它们。例如,`user.getAddress().getCity()` 会返回 "北京"。