Jackson是一個開源的JSON數據解析庫,可以方便地將JSON字符串轉換成Java對象。在訪問JSON數據時,經常需要將JSON數組轉換成Java中的List類型。下面是一段代碼示例:
ObjectMapper objectMapper = new ObjectMapper(); List<User> userList = objectMapper.readValue(jsonArrayString, new TypeReference<List<User>>() {});
上面的代碼通過使用ObjectMapper類來實現將JSON數組轉換成Java的List對象。其中,readValue()方法的第一個參數為要轉換的JSON字符串,第二個參數是一個TypeReference類型,用于表示List<User>的泛型類型。
下面是一個更完整的示例代碼:
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.util.List; class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public class JacksonListExample { public static void main(String[] args) throws IOException { String jsonArrayString = "[{\"name\":\"張三\",\"age\":28},{\"name\":\"李四\",\"age\":30}]"; ObjectMapper objectMapper = new ObjectMapper(); List<User> userList = objectMapper.readValue(jsonArrayString, new TypeReference<List<User>>() {}); for (User user : userList) { System.out.println(user.getName() + "," + user.getAge() + "歲"); } } }
在上面的示例代碼中,我們使用了一個名為User的簡單Java類來表示將要轉換的數據類型。在main()方法中,我們將一個包含兩個User對象的JSON數組字符串作為輸入數據,并通過上述代碼將其轉換成一個List<User>對象,最后循環遍歷該對象的每個元素并輸出。
通過上述代碼示例,我們可以看到,使用Jackson實現JSON數組轉List是非常方便的,只需要傳遞正確的TypeReference類型即可實現。對于較為復雜的JSON數據類型,我們也可以通過類似的方法將其轉換成Java對象,非常靈活。