Java中使用JSON進行數據傳輸已經成為了一種常見的方式。在一些實際的項目中,涉及到的數據并不是單一的對象,而是一對多的情況。那么在Java中如何將JSON進行一對多的轉換呢?
// 假設有如下JSON數據 { "name": "張三", "hobbies": [ { "id": 1, "name": "看書" }, { "id": 2, "name": "打游戲" } ] } // 定義Java類 public class Person { private String name; private Listhobbies; // getter和setter方法省略 } public class Hobby { private int id; private String name; // getter和setter方法省略 } // 解析JSON數據 String jsonStr = "{\"name\":\"張三\",\"hobbies\":[{\"id\":1,\"name\":\"看書\"},{\"id\":2,\"name\":\"打游戲\"}]}"; JSONObject jsonObj = JSONObject.parseObject(jsonStr); Person person = new Person(); person.setName(jsonObj.getString("name")); JSONArray hobbiesJsonArray = jsonObj.getJSONArray("hobbies"); List hobbies = new ArrayList<>(); for (int i = 0; i< hobbiesJsonArray.size(); i++) { JSONObject hobbyJson = hobbiesJsonArray.getJSONObject(i); Hobby hobby = new Hobby(); hobby.setId(hobbyJson.getIntValue("id")); hobby.setName(hobbyJson.getString("name")); hobbies.add(hobby); } person.setHobbies(hobbies);
代碼中首先定義了一個Person類和Hobby類,Person類中包含了一個List集合類型的hobbies屬性。然后,解析JSON字符串,使用JSONArray獲取hobbies節點的子節點,循環將每個節點解析成Hobby對象并加入到List集合中,最后再將list集合設置給person的hobbies屬性。