使用jackson-mapper-lgpl序列化和反序列化

简介:

在前面的博客中说明了json-lib如何序列化和反序列化。现在说明下jackson-mapper-lgpl (以下简称jackson)的用法。

jackson 官网:http://jackson.codehaus.org/

jackson 依赖的jar包:

 maven 依赖配置:

Xml代码   收藏代码
  1. <!-- Json转化模块 -->  
  2.         <dependency>  
  3.             <groupId>org.codehaus.jackson</groupId>  
  4.             <artifactId>jackson-mapper-lgpl</artifactId>  
  5.             <version>1.9.9</version>  
  6.         </dependency>  

 

使用jackson 序列化Java对象,即把java对象转化json 字符串

Java代码   收藏代码
  1. @Test  
  2.     public void test_serialize2(){  
  3.         ObjectMapper mapper = new ObjectMapper();  
  4.         Class2 c=new Class2();  
  5.         List<Student>students=new ArrayList<Student>();  
  6.         Student student=new Student();  
  7.         Map<String, Object> attribute =new HashMap<String, Object>();  
  8.         attribute.put("p1""v1");  
  9.         attribute.put("p2""v2");  
  10.         student.setAttribute(attribute);  
  11.         students.add(student);  
  12.         student.setName("黄威");  
  13.         student.setHobby("Roller-Skating");  
  14.         c.setStudents(students);  
  15.         c.setClassName("计算机0705");  
  16.           
  17.         String content;  
  18.         try {  
  19.             content = mapper.writeValueAsString(student);  
  20.             System.out.println(content);  
  21.         } catch (JsonGenerationException e) {  
  22.             e.printStackTrace();  
  23.         } catch (JsonMappingException e) {  
  24.             e.printStackTrace();  
  25.         } catch (IOException e) {  
  26.             e.printStackTrace();  
  27.         }  

 运行结果:

{"addrr":null,"age":0,"name":"黄威","hobby":"Roller-Skating","attribute":{"p2":"v2","p1":"v1"}}

 

 

使用jackson 反序列化,即把json字符串或inputstream 还原为java对象

Java代码   收藏代码
  1. @Test  
  2.     public void test_reserialize(){  
  3.         String jsonInput = "{\"addrr\":{\"country\":\"中国\",\"state\":\"湖北省\",\"street\":\"清河\"},\"age\":25,\"hobby\":\"\",\"name\":\"黄威\"}";  
  4.         ObjectMapper mapper = new ObjectMapper();  
  5.         Student student;  
  6.         try {  
  7.             student = mapper.readValue(jsonInput, Student.class);  
  8.             System.out.println(student.getAddrr().getStreet());  
  9.             System.out.println(student.getName());  
  10.         } catch (Exception e) {  
  11.             e.printStackTrace();  
  12.         }  
  13.     }  

 运行结果:

Java代码   收藏代码
  1. 清河  
  2. 黄威  
相关文章
|
5月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
5月前
|
存储 开发框架 .NET
解锁SqlSugar新境界:利用Serialize.Linq实现Lambda表达式灵活序列化与反序列化,赋能动态数据查询新高度!
【8月更文挑战第3天】随着软件开发复杂度提升,数据查询的灵活性变得至关重要。SqlSugar作为一款轻量级、高性能的.NET ORM框架,简化了数据库操作。但在需要跨服务共享查询逻辑时,直接传递Lambda表达式不可行。这时,Serialize.Linq库大显身手,能将Linq表达式序列化为字符串,实现在不同服务间传输查询逻辑。结合使用SqlSugar和Serialize.Linq,不仅能够保持代码清晰,还能实现复杂的动态查询逻辑,极大地增强了应用程序的灵活性和可扩展性。
172 2
|
2月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
2月前
|
存储 安全 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第22天】在Java的世界里,对象序列化和反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何在Java中实现对象的序列化与反序列化,并探讨其背后的原理。通过实际代码示例,我们将一步步展示如何将复杂数据结构转换为字节流,以及如何将这些字节流还原为Java对象。文章还将讨论在使用序列化时应注意的安全性问题,以确保你的应用程序既高效又安全。
|
3月前
|
存储 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第9天】在Java的世界里,对象序列化是连接数据持久化与网络通信的桥梁。本文将深入探讨Java对象序列化的机制、实践方法及反序列化过程,通过代码示例揭示其背后的原理。从基础概念到高级应用,我们将一步步揭开序列化技术的神秘面纱,让读者能够掌握这一强大工具,以应对数据存储和传输的挑战。
|
3月前
|
存储 安全 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第3天】在Java编程的世界里,对象序列化与反序列化是实现数据持久化和网络传输的关键技术。本文将深入探讨Java序列化的原理、应用场景以及如何通过代码示例实现对象的序列化与反序列化过程。从基础概念到实践操作,我们将一步步揭示这一技术的魅力所在。
|
2月前
|
存储 缓存 NoSQL
一篇搞懂!Java对象序列化与反序列化的底层逻辑
本文介绍了Java中的序列化与反序列化,包括基本概念、应用场景、实现方式及注意事项。序列化是将对象转换为字节流,便于存储和传输;反序列化则是将字节流还原为对象。文中详细讲解了实现序列化的步骤,以及常见的反序列化失败原因和最佳实践。通过实例和代码示例,帮助读者更好地理解和应用这一重要技术。
63 0
|
4月前
|
JSON 安全 编译器
扩展类实例的序列化和反序列化
扩展类实例的序列化和反序列化
51 1
|
4月前
|
JSON fastjson Java
niubility!即使JavaBean没有默认无参构造器,fastjson也可以反序列化。- - - - 阿里Fastjson反序列化源码分析
本文详细分析了 Fastjson 反序列化对象的源码(版本 fastjson-1.2.60),揭示了即使 JavaBean 沲有默认无参构造器,Fastjson 仍能正常反序列化的技术内幕。文章通过案例展示了 Fastjson 在不同构造器情况下的行为,并深入探讨了 `ParserConfig#getDeserializer` 方法的核心逻辑。此外,还介绍了 ASM 字节码技术的应用及其在反序列化过程中的角色。
110 10
|
4月前
|
存储 XML JSON
用示例说明序列化和反序列化
用示例说明序列化和反序列化
33 1