Java中使用JSON進行數(shù)據(jù)傳輸已經(jīng)成為了一種常見的方式。在一些實際的項目中,涉及到的數(shù)據(jù)并不是單一的對象,而是一對多的情況。那么在Java中如何將JSON進行一對多的轉(zhuǎn)換呢?
// 假設(shè)有如下JSON數(shù)據(jù) { "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數(shù)據(jù) 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節(jié)點的子節(jié)點,循環(huán)將每個節(jié)點解析成Hobby對象并加入到List集合中,最后再將list集合設(shè)置給person的hobbies屬性。