将 JSON 数组字符串转换为List
使用的方法:
// JSON array string// [{"name":"mkyong", "age":37}, {"name":"fong", "age":38}]ObjectMapper mapper = new ObjectMapper();String json = "[{\"name\":\"mkyong\", \"age\":37}, {\"name\":\"fong\", \"age\":38}]";// 1. convert JSON array to Array objectsPerson[] pp1 = mapper.readValue(json, Person[].class);// 2. convert JSON array to List of objectsList<Person> ppl2 = Arrays.asList(mapper.readValue(json, Person[].class));
pom文件:
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.8</version></dependency>
将JSON数组字符串转换为List
① JSON数组字符串
[{"name":"mkyong", "age":37}, {"name":"fong", "age":38}]
② 创建一个对象来映射上述JSON字段
@Datapublic class Person {String name;Integer age;}
③ 将 JSON 数组字符串转换为List
public class JacksonArrayExample {public static void main(String[] args) {ObjectMapper mapper = new ObjectMapper();String json = "[{\"name\":\"mkyong\", \"age\":37}, {\"name\":\"fong\", \"age\":38}]";try {// 1. convert JSON array to Array objectsPerson[] pp1 = mapper.readValue(json, Person[].class);System.out.println("JSON array to Array objects...");for (Person person : pp1) {System.out.println(person);}// 2. convert JSON array to List of objectsList<Person> ppl2 = Arrays.asList(mapper.readValue(json, Person[].class));System.out.println("\nJSON array to List of objects");ppl2.stream().forEach(x -> System.out.println(x));// 3. alternativeList<Person> pp3 = mapper.readValue(json, new TypeReference<List<Person>>() {});System.out.println("\nAlternative...");pp3.stream().forEach(x -> System.out.println(x));} catch (IOException e) {e.printStackTrace();}}}
输出:
JSON array to Array objects...Person(name=mkyong, age=37)Person(name=fong, age=38)JSON array to List of objectsPerson(name=mkyong, age=37)Person(name=fong, age=38)Alternative...Person(name=mkyong, age=37)Person(name=fong, age=38)