使用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. 黄威  
时间: 2024-11-03 23:17:01

使用jackson-mapper-lgpl序列化和反序列化的相关文章

jackson (json、xml的序列化与反序列化)

jackson用于java对象到json的序列化与反序列化.还支持xml格式. jackson用于实现json与java对象的序列与反序列化.web service要实现跨机器传送对象那么就需要有一种技术能把对象转换为特定格式的信息.为了实现跨平台(比如把java对象转化为c#或c++对象),又考虑到方便人们阅读,所以基于字符串规则的转换是最理想的.json就是这样一个轻量级的数据交换格式,而jackson是一个实现该功能的很好用的框架. 1.获得 <dependency> <group

序列化和反序列化

  互联网的产生带来了机器间通讯的需求,而互联通讯的双方需要采用约定的协议,序列化和反序列化属于通讯协议的一部分.通讯协议往往采用分层模型,不同模型每层的功能定义以及颗粒度不同,例如:TCP/IP协议是一个四层协议,而OSI模型却是七层协议模型.在OSI七层协议模型中展现层(Presentation Layer)的主要功能是把应用层的对象转换成一段连续的二进制串,或者反过来,把二进制串转换成应用层的对象--这两个功能就是序列化和反序列化.一般而言,TCP/IP协议的应用层对应与OSI七层协议模型

C#对象序列化和反序列化

C#对象序列化和反序列化,如下代码示例: using System;  using System.Text;  using System.Collections.Generic;  using System.IO;  using System.Runtime.Serialization.Formatters.Binary;    class SerializableOperate  {      private static void ObjectSerializable(object obj,

ASP.NET中JSON的序列化和反序列化

导读:JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大括号'{

通过序列化和反序列化泛型数据实体集合来实现持久化数据对象的方法

对象|集合|数据 通过序列化和反序列化泛型数据实体集合来实现持久化数据对象的方法 我们在平时使用数据库的时候,经常会碰到一个问题,就是不希望数据实体对象插入数据库中, 却有想持久化的时候,那么就可以用序列化成 XML字符串,来保存到其他地方,由于生成的是字符串,所以可以保存到任意我们想保存的地方.比如 asp.net的ViewState,cookie,cache等. 首先,我们定义一个数据实体类.     class Entity    {        public Entity()     

Asp.Net Forums中对.Net中序列化和反序列化的应用

asp.net 在Forums中,有些内容是不固定的,例如用户资料,除了一些基本资料,可能还要有一些其他资料信息,例如MSN.个人主页.签名档等,一般对于这样的都是每一个属性对应于数据库中的一个字段.但是如果以后我们因为需要增加一些属性,例如QQ号.Blog地址等,如果还是用这种增加数据表字段的方法,那么将会频繁的修改数据库表结构.存储过程.数据库访问的程序. 或许您也遇到过类似问题,看Forums中是怎么借用.Net的序列化和反序列化来解决的:例如我需要在用户资料里面增加QQ号这个属性,那么我

C#实现对象的Xml格式序列化及反序列化

xml|对象   要序列化的对象的类: [Serializable]public class Person{private string name;public string Name{get{return name;}set{name=value;}}public string Sex;public int Age=31;public Course[] Courses; public Person(){}public Person(string Name){name=Name;Sex="男&q

WPF 字体、颜色等属性的序列化和反序列化

WPF自带的一些属性比如System.Windows.Media.Brush.System.Windows.Media.FontFamily.System.Windows.FontWeight等不具有直接序列化能力,本文针对这一点设计名为PropertySerializateDictionary的类,实现了不同类不同对象公有属性的序列化和反序列化.本类继承于Dictionary<string, TypeAndValue>, IXmlSerializable,调用了自实现类TypeAndValu

Windows 8 Store Apps学习(60) 通信: 获取网络信息, 序列化和反序列化

介绍 重新想象 Windows 8 Store Apps 之 通信 获取网络信息 序列化 - json 序列化 - xml 序列化 - rss atom 示例 1.演示如何获取网络的相关信息 Communication/NetworkInfo.xaml.cs /* * 演示如何获取网络的相关信息 */ using System; using System.Collections.Generic; using Windows.Networking.Connectivity; using Windo