Jackson库如何实现2070817序列化与反序列化?

更新于
2026-10-04 11:44:22
2阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计294个文字,预计阅读时间需要2分钟。

java// JavaBean to JSON 转换接口,不同类型序列化接口// 反序列化时,自定义类型需指定一个javaType// 注意:在序列化与反序列化时,若不同工程中需要建立相同的JavaBeanTargettarget=n;

javaBean-json

//不同类型序列化接口一样 //反序列化 自定义类型要指定一个javaType 注意 在序列化与反序列化时候,如果不太同一个工程中,另一个工程也要建立同样的javaBean Target target = new Target(); //jackson ObjectMapper mapper = new ObjectMapper(); try { //序列化 String json = mapper.writeValueAsString(target); redisUtils.hset("yingxuan", "yingxuan", json); redisUtils.expire("yingxuan", 60*5); String parse = redisUtils.hget("yingxuan", "yingxuan"); //bean target = mapper.readValue(parse, target.getClass()); System.out.println(target); List list = new ArrayList<>(); list.add(target); redisUtils.hset("yingxuan", "map", mapper.writeValueAsString(list)); String listmap = redisUtils.hget("yingxuan", "map"); //bean集合 JavaType javaType = mapper.getTypeFactory().constructParametricType(ArrayList.class, Target.class); List lst = mapper.readValue(listmap, javaType); System.out.println(); List > list2 = new ArrayList<>();list2.add(map); redisUtils.hset("yingxuan", "list2map", mapper.writeValueAsString(list2)); String list2map = redisUtils.hget("yingxuan", "list2map"); //map要定义javaType对应反序列化类型 JavaType javaType2 = mapper.getTypeFactory().constructParametricType(ArrayList.class, mapper.getTypeFactory().constructParametricType(HashMap.class,String.class, Object.class)); List > lst2 = mapper.readValue(list2map, javaType2); System.out.println(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }

本文共计294个文字,预计阅读时间需要2分钟。

java// JavaBean to JSON 转换接口,不同类型序列化接口// 反序列化时,自定义类型需指定一个javaType// 注意:在序列化与反序列化时,若不同工程中需要建立相同的JavaBeanTargettarget=n;

javaBean-json

//不同类型序列化接口一样 //反序列化 自定义类型要指定一个javaType 注意 在序列化与反序列化时候,如果不太同一个工程中,另一个工程也要建立同样的javaBean Target target = new Target(); //jackson ObjectMapper mapper = new ObjectMapper(); try { //序列化 String json = mapper.writeValueAsString(target); redisUtils.hset("yingxuan", "yingxuan", json); redisUtils.expire("yingxuan", 60*5); String parse = redisUtils.hget("yingxuan", "yingxuan"); //bean target = mapper.readValue(parse, target.getClass()); System.out.println(target); List list = new ArrayList<>(); list.add(target); redisUtils.hset("yingxuan", "map", mapper.writeValueAsString(list)); String listmap = redisUtils.hget("yingxuan", "map"); //bean集合 JavaType javaType = mapper.getTypeFactory().constructParametricType(ArrayList.class, Target.class); List lst = mapper.readValue(listmap, javaType); System.out.println(); List > list2 = new ArrayList<>();list2.add(map); redisUtils.hset("yingxuan", "list2map", mapper.writeValueAsString(list2)); String list2map = redisUtils.hget("yingxuan", "list2map"); //map要定义javaType对应反序列化类型 JavaType javaType2 = mapper.getTypeFactory().constructParametricType(ArrayList.class, mapper.getTypeFactory().constructParametricType(HashMap.class,String.class, Object.class)); List > lst2 = mapper.readValue(list2map, javaType2); System.out.println(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }