Jackson之ObjectMapper json字符串转对象,转list

java中json 的String 可用于测试

String json = "[{\"supplierId\":\"1158\",\"supplierNum\":\"460\",\"supplierName\":\"工厂460-5-腾达\"},
                +"{\"supplierId\":\"1158\",\"supplierNum\":\"460\",\"supplierName\":\"工厂460-5-腾\"},
                +"{\"supplierId\":\"1158\",\"supplierNum\":\"460\",\"supplierName\":\"工厂460-5-腾\"},
                +"{\"supplierId\":\"1158\",\"supplierNum\":\"460\",\"supplierName\":\"工厂460-5-腾达\"}
                +"]";

标题实例 json 转list

String jsonString="[{'id':'1','name':'li'},{'id':'2','name':'zhang'}]";
ObjectMapper mapper = new ObjectMapper();
List<Person> beanList = mapper.readValue(jsonString, new TypeReference<List<Person>>() {}); 

注意:::::readValue()方法里的new TypeReference<List< Rule>>() { }写法很关键

要将JSON字符串转换为Java中的对象集合,可以使用多种库来实现这一功能。以下是基于Jackson和Gson两种常见方式的具体说明。 ### 使用Jackson库 通过`ObjectMapper`类,可以从JSON字符串映射到Java的对象列表: ```java import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.util.List; public class JsonToListExample { public static void main(String[] args) throws IOException { ObjectMapper objectMapper = new ObjectMapper(); String jsonString = "[{\"name\":\"zhangsan\",\"age\":14},{\"name\":\"lisi\",\"age\":24}]"; // 定义目标类型的泛型引用 TypeReference<List<User>> typeRef = new TypeReference<>() {}; // 将JSON字符串转换为目标类型 List<User> userList = objectMapper.readValue(jsonString, typeRef); System.out.println("List of Users: " + userList); } static class User { private String name; private int age; // Getters and setters 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; } @Override public String toString() { return "User{name='" + name + "', age=" + age + "}"; } } } ``` 这种方式利用了Jackson强大的数据绑定能力[^1]。 --- ### 使用Gson库 另一种常用的方法是借助Google的Gson库完成相同的任务: ```java import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.List; public class GsonToListExample { public static void main(String[] args) { Gson gson = new Gson(); String jsonString = "[{\"name\":\"zhangsan\",\"age\":14},{\"name\":\"lisi\",\"age\":24}]"; // 定义目标类型的反射Type Type listType = new TypeToken<List<User>>() {}.getType(); // 将JSON字符串转换为目标类型 List<User> userList = gson.fromJson(jsonString, listType); System.out.println("List of Users: " + userList); } static class User { private String name; private int age; // Getters and setters 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; } @Override public String toString() { return "User{name='" + name + "', age=" + age + "}"; } } } ``` 这种方法同样简单高效,并且支持复杂的嵌套结构[^3]。 --- ### 注意事项 - 如果JSON字符串中存在额外字段而这些字段未被定义在对应的POJO类中,则可以通过设置忽略未知属性的方式避免异常发生。对于Jackson而言,可以在`ObjectMapper`实例上配置如下选项: `objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);` - 对于大型复杂的数据集,建议提前验证输入JSON的有效性和一致性,以减少潜在错误的发生概率[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值