fastjson怎么解析复杂json数据

avatar
作者
猴君
阅读量:4

要解析复杂的 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 方法可以获取简单的属性,使用 getJSONObjectgetJSONArray 方法可以获取嵌套的对象和数组中的元素。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!