超简单的jackson数据绑po,pojo,vo,十分钟会用(原创)

mac2022-06-30  99

项目需要,要用上json操作数据,在网上搜了几篇评测,再加上自己目测(-_-#),最后决定用jackson,然后便开始搜资料学习.

我要用的主要是对象转json字符,然后字符转对象,还要解析POJO,VO刚开始觉得蛮郁闷的,资料不怎么多,只能无奈之下啃英文+看源码.啃了半天才知道,原来jackson虽然相当强大,但用起来相当简洁.各种我们要用的功能作者都考虑进去了.

自己写了一些测试代码,短短几行,不过我要的需已经全部都有了.先上码:

ro类 1 package; 2 /** 3 * 自动生成的vo,对应数据库tb_Role表 4 */ 5 public class RoleVO implements java.io.Serializable { 6 private int roleId; 7 private String roleName; 8 private int lv; 9 10 public void setRoleId(int value) {11 this.roleId = value;12 }13 14 public int getRoleId() {15 return roleId;16 }17 18 public void setRoleName(String value) {19 this.roleName = value;20 }21 22 public String getRoleName() {23 return roleName;24 }25 26 public void setLv(int value) {27 this.lv = value;28 }29 30 public int getLv() {31 return lv;32 }33 }

 

1 public static void main(String args[]) { 2 try { 3 // json字符串转vo/po/pojo对象 4 String strRo = "{\"roleId\":1,\"roleName\":\"role1\",\"lv\":0}"; 5 RoleVO role = mapper.readValue(strRo, RoleVO.class); 6 7 //json字符串转List(包括List里的泛型) 8 String strLs = "[{\"roleId\":1,\"roleName\":\"role1\",\"lv\":0}," + 9 "{\"roleId\":2,\"roleName\":\"role2\",\"lv\":2}," +10 "{\"roleId\":3,\"roleName\":\"role3\",\"lv\":0}]";11 List<RoleVO> roleLs = mapper.readValue(strLs, new TypeReference<List<RoleVO>>() {});12 System.out.println("json 转列表类型"+roleLs);13 14 //json字符串转Map(包括Map里的泛型)15 String strMap = "{\"role1\" : {\"roleId\":1,\"roleName\":\"role1\",\"lv\":0}," +16 "\"role2\" : {\"roleId\":1,\"roleName\":\"role2\",\"lv\":0}," +17 "\"role3\" : {\"roleId\":1,\"roleName\":\"role3\",\"lv\":0}}";18 Map<String,RoleVO> roleMap = mapper.readValue(strMap, new TypeReference<Map<String,RoleVO>>() {});19 System.out.println(roleMap);20 21 //对象转json字符串22 String mapStr = mapper.writeValueAsString(roleMap);23 String lsStr = mapper.writeValueAsString(roleLs);24 String voStr = mapper.writeValueAsString(role);25 26 System.out.println(mapStr);27 System.out.println(lsStr);28 System.out.println(voStr);29 } catch (Exception e) {30 System.out.println("转换出错");31 }32 }

操作相当简单,但功能很强大,TypeReference这个类用得很聪明,原来java的泛型还可以这样用.详细的信息要以google能搜出很多.

如果哪位想要做缓存的,jackson还提供了缓存接口,还可进行io操作.不过那块我不需要,暂时没研究.

转载于:https://www.cnblogs.com/pelephone/archive/2011/11/01/jackon-json-2-pojo-vo.html

最新回复(0)