要解析復雜的 JSON 數據,可以使用 Fastjson 提供的 JSONPath 表達式來篩選和提取需要的數據。
下面是一個示例,演示如何使用 Fastjson 解析復雜的 JSON 數據:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;
public class Main {
public static void main(String[] args) {
// 復雜的 JSON 數據
String jsonString = "{\"name\":\"John\",\"age\":30,\"address\":{\"street\":\"123 Main St\",\"city\":\"New York\"},\"pets\":[{\"name\":\"Fluffy\",\"type\":\"cat\"},{\"name\":\"Spot\",\"type\":\"dog\"}]}";
// 解析 JSON 數據
JSONObject jsonObject = JSON.parseObject(jsonString);
// 獲取簡單的屬性
String name = jsonObject.getString("name");
int age = jsonObject.getIntValue("age");
System.out.println("Name: " + name);
System.out.println("Age: " + age);
// 獲取嵌套的屬性
JSONObject address = jsonObject.getJSONObject("address");
String street = address.getString("street");
String city = address.getString("city");
System.out.println("Street: " + street);
System.out.println("City: " + city);
// 獲取數組中的元素
JSONArray pets = jsonObject.getJSONArray("pets");
for (int i = 0; i < pets.size(); i++) {
JSONObject pet = pets.getJSONObject(i);
String petName = pet.getString("name");
String petType = pet.getString("type");
System.out.println("Pet " + (i + 1) + ": " + petName + " (" + petType + ")");
}
}
}
以上代碼會輸出以下結果:
Name: John
Age: 30
Street: 123 Main St
City: New York
Pet 1: Fluffy (cat)
Pet 2: Spot (dog)
這個例子中的 JSON 數據包含了嵌套的對象和數組。使用 Fastjson 的 getXXX
方法可以獲取簡單的屬性,使用 getJSONObject
和 getJSONArray
方法可以獲取嵌套的對象和數組中的元素。