一、Json介紹
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易於人閱讀和編寫。在 Web 應用中,JSON 最常用於向伺服器請求一個數據,並將數據顯示在網頁上。JSON 可以使用 JavaScript 中的 JSON.parse() 方法將 json 字元串解析成一個 JavaScript 對象。
JSON 大多數情況下是以文件格式存在,使用 JSON 文件非常簡單,只需調用相關 API 將 JSON 文件載入為 JsonNode 節點即可。因為 JSON 格式具有輕量、易讀性及性能優越等特性,廣泛應用於 Web API 的返回值、網路傳輸及前端數據解析等場景。
二、將Json轉換為List的應用場景
我們知道,Json 是一種經典的跨平台關鍵特性存儲和交換信息格式,而 Java 作為一種平台無關的編程語言,在開發中需要面對各種各樣的數據格式和傳輸方式。而在某些特定的情況下,我們需要將Json格式的數據轉成Java對象,進而進行操作。那麼,將 Json 解析成Java 對象的方式就變成了一個必要的操作,並且在很多應用中都被廣泛應用。
當需要處理從 Web 服務搜集的大量 JSON 數據並在客戶端上對其進行訪問時,Java 中一個廣泛使用的技術就是將 JSON 數據解析成一個標準對象集合,以便有效地操作數據。換言之,如果您正在處理一個 Web API,並且將其中每個事件的細節作為 JSON 對象返回,那麼您最簡單的解決方案可能是將 JSON 數組轉換為一個 Java 集合,例如 List,然後進行更進一步的操作。
三、JavaJson轉List的方法
1. 使用Jackson的ObjectMapper轉換
ObjectMapper mapper = new ObjectMapper();
String json = "[{\"name\":\"張三\",\"age\":18}, {\"name\":\"李四\",\"age\":20}]";
List<Person> personList = mapper.readValue(json, new TypeReference<List<Person>>(){});
這裡使用Jackson框架的 ObjectMapper 對象將 Json 數據轉換成 List<Person> 列表對象,其中 Person 是一個自定義類,可以用於存儲 Json 對象中的信息。
2. 使用Gson的fromJson方法轉換
Gson gson = new Gson();
String json = "[{\"name\":\"張三\",\"age\":18}, {\"name\":\"李四\",\"age\":20}]";
List<Person> personList = gson.fromJson(json, new TypeToken<List<Person>>(){}.getType());
這裡使用Gson框架的 fromJson 方法將 Json 數據轉換成 List<Person> 類型的對象,其中 Person 也是一個自定義類。
3. 使用JsonArray轉換
String json = "[{\"name\":\"張三\",\"age\":18}, {\"name\":\"李四\",\"age\":20}]";
JsonArray jsonArray = new JsonParser().parse(json).getAsJsonArray();
List<Person> personList = new ArrayList<Person>();
for (int i = 0; i < jsonArray.size(); i++) {
JsonObject personJson = jsonArray.get(i).getAsJsonObject();
Person person = new Person();
person.setName(personJson.get("name").getAsString());
person.setAge(personJson.get("age").getAsInt());
personList.add(person);
}
這裡使用 JsonArray 對象將 Json 數據轉換成 List<Person> 對象,同樣需要將 Json 字元串轉成 JsonArray 對象,然後進行遍歷,提取每個 Json 對象中的信息存入 Person 對象中,最後將生成的 Person 對象添加到 List 對象中。
四、總結
在項目開發過程中,經常會遇到將Json數據轉換為Java對象來方便進行操作的情況,在這篇文章中,我們介紹了使用Jackson和Gson兩種框架和JsonArray對象的方法將Json數據轉換為JavaList對象,這些方法都能夠高效地完成這項工作。具體而言,選擇哪種方法取決於您項目中所涉及的技術棧和個人喜好。但是,無論您選擇何種方法,只要您熟練掌握這些工具和技術,就能夠輕鬆地將 JSON 數據轉換為 Java List 對象。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/286422.html