使用jackson工具类objectMapper对象实现 json字符串与对象bean、map、list互相转换

使用jackson工具类objectMapper对象实现 json字符串与对象bean、map、list互相转换

工具类:

  // spring自带的jackson工具类,可以使用它进行序列化实现格式转换
  private static final ObjectMapper MAPPER = new ObjectMapper();

1.对象转json字符串

User user = new User();
String userJson = MAPPER.writeValueAsString(user);

2.Map转json字符串

Map map = new HashMap();  
String json = MAPPER.writeValueAsString(map);

3.数组list转json字符串

Student[] stuArr = {student1, student3};  
String jsonfromArr =  mapper.writeValueAsString(stuArr);

4.json字符串转对象

String expected = "{\"name\":\"zhangsan\"}";
User user = mapper.readValue(expected, User.class);

5.json字符串转Map

String expected = "{\"name\":\"zhangsan\"}";
Map userMap = mapper.readValue(expected, Map.class);

6.json字符串转对象数组List

String expected="[{\"a\":12},{\"b\":23},{\"name\":\"Ryan\"}]";
CollectionType listType = mapper.getTypeFactory().constructCollectionType(ArrayList.class, User.class);
List<User> userList = mapper.readValue(expected, listType);

7.json字符串转Map数组List<Map<String,Object>>

String expected="[{\"a\":12},{\"b\":23},{\"name\":\"Ryan\"}]";
CollectionType listType = mapper.getTypeFactory().constructCollectionType(ArrayList.class, Map.class);
List<Map<String,Object>> userMapList = mapper.readValue(expected, listType);

8.jackson默认将对象转换为LinkedHashMap:

String expected = "[{\"name\":\"Ryan\"},{\"name\":\"Test\"},{\"name\":\"Leslie\"}]";
ArrayList arrayList = mapper.readValue(expected, ArrayList.class);

9.json字符串与list或map互转的方法

ObjectMapper objectMapper = new ObjectMapper();
 //遇到date按照这种格式转换
 SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 objectMapper.setDateFormat(fmt);
 
  String preference = "{name:'zhangsan'}";
        //json字符串转map
  Map<String, String> preferenceMap = new HashMap<String, String>();
  preferenceMap = objectMapper.readValue(preference, preferenceMap.getClass());
  
  //map转json字符串
  String result=objectMapper.writeValueAsString(preferenceMap);

10.bean转换为map

List<Map<String,String>> returnList=new ArrayList<Map<String,String>>();
List<Menu> menuList=menuDAOImpl.findByParentId(parentId);
ObjectMapper mapper = new ObjectMapper();
//用jackson将bean转换为map
returnList=mapper.convertValue(menuList,new TypeReference<List<Map<String, String>>>(){});
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用JacksonObjectMapper类将JSON字符串转换为Java对象的示例代码: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class JsonToObjectExample { public static void main(String[] args) { String json = "{\"name\":\"John\", \"age\":30}"; ObjectMapper objectMapper = new ObjectMapper(); try { User user = objectMapper.readValue(json, User.class); System.out.println(user.getName()); // 输出:John System.out.println(user.getAge()); // 输出:30 } catch (Exception e) { e.printStackTrace(); } } static class User { private String name; private int age; // 必须要有一个无参构造方法 public User() {} public User(String name, int age) { this.name = name; this.age = 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; } } } ``` 在这个示例中,我们将一个JSON字符串 `{"name":"John", "age":30}` 转换为一个 `User` 对象。我们使用JacksonObjectMapper类来实现这个功能。 首先,我们创建了一个ObjectMapper对象。然后,我们使用 `readValue()` 方法将JSON字符串转换为User对象。需要注意的是,我们需要将User类传递给 `readValue()` 方法,以便ObjectMapper知道要将JSON数据转换成哪个Java对象。 User类必须要有一个无参构造方法,并且它的属性名必须要和JSON字符串中的属性名一致,否则转换会失败。 最后,我们可以使用User对象的getter方法来获取属性值,并进行打印输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值