2、测试类,没用Junit,用Main()方法输出。

    package test;  

    import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper; /**
* Description: 主要用于测试学习用jackson包实现json、对象、Map之间的转换
*
* Date: 2016年6月6日
* Time: 下午3:23:23
*/
public class JsonTest
{ public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException
{
User user=new User();
user.setId("01");
user.setName("张三");
user.setAge(33);
user.setPay(6666.88);
user.setValid(true);
user.setOne('E');
user.setBirthday(new Date(20l*366*24*3600*1000)); //1990年 Link link = new Link();
link.setAddress("河南省济源市");
link.setPhone("13899995555");
link.setQq("123456");
user.setLink(link); Map map=new HashMap();
map.put("aa", "this is aa");
map.put("bb", "this is bb");
map.put("cc", "this is cc");
user.setMap(map); List list=new ArrayList(){};
list.add("普洱");
list.add("大红袍");
user.setList(list); Set set=new HashSet();
set.add("篮球");
set.add("足球");
set.add("乒乓球");
user.setSet(set); ObjectMapper mapper = new ObjectMapper(); //转换器 //测试01:对象--json
String json=mapper.writeValueAsString(user); //将对象转换成json
System.out.println(json);
/* 结果如下:
{"id":"01","name":"张三","age":33,"pay":6666.88,"valid":true,"one":"E","birthday":1465185448998,
"link":{"phone":"13899995555","address":"河南省济源市","qq":"123456"},
"map":{"aa":"this is aa","bb":"this is bb","cc":"this is cc"},
"list":["普洱","大红袍"],
"set":["乒乓球","足球","篮球"]} 注意点:(1) 日期--长整型 (2)List、Set均转成数组
*/ //测试02:json--map
Map m = mapper.readValue(json, Map.class); //json转换成map System.out.println("pay:"+m.get("pay").getClass().getName()); //java.lang.Double
System.out.println("valid:"+m.get("valid").getClass().getName()); //java.lang.Boolean
System.out.println("birthday:"+m.get("birthday").getClass().getName()); //java.lang.Long
System.out.println("link:"+m.get("link").getClass().getName()); //java.util.LinkedHashMap
System.out.println("map:"+m.get("map").getClass().getName()); //java.util.LinkedHashMap
System.out.println("list:"+m.get("list").getClass().getName()); //java.util.ArrayList
System.out.println("set:"+m.get("set").getClass().getName()); //java.util.ArrayList
/* 结果如下:
pay:java.lang.Double
valid:java.lang.Boolean
birthday:java.lang.Long
link:java.util.LinkedHashMap
map:java.util.LinkedHashMap
list:java.util.ArrayList
set:java.util.ArrayList 注意点:(1) 日期--长整型 (2)map、子对象均转换成了LinkedHashMap (3)List、Set均转成ArrayList
*/ //测试03:map--json
json=mapper.writeValueAsString(m); //map转json
System.out.println(json); //与之前格式完全相同,说明经过map转换后,信息没有丢失 //测试04:json--对象
User u=mapper.readValue(json, User.class); //json转java对象。经测,转成对象后,一切恢复正常
System.out.println("pay:"+u.getPay());
System.out.println("valid:"+u.isValid());
System.out.println("birthday:"+u.getBirthday());
System.out.println("link:"+u.getLink());
System.out.println("map:"+u.getMap());
System.out.println("list:"+u.getList());
System.out.println("set:"+u.getSet()); //测试05:其他转换
byte[] data=mapper.writeValueAsBytes(u); //对象转成二进制数组 } }

3、输出结果

    {"id":"01","name":"张三","age":33,"pay":6666.88,"valid":true,"one":"E","birthday":632448000000,"link":{"phone":"13899995555","address":"河南省济源市","qq":"123456"},"map":{"aa":"this is aa","bb":"this is bb","cc":"this is cc"},"list":["普洱","大红袍"],"set":["乒乓球","足球","篮球"]}
pay:java.lang.Double
valid:java.lang.Boolean
birthday:java.lang.Long
link:java.util.LinkedHashMap
map:java.util.LinkedHashMap
list:java.util.ArrayList
set:java.util.ArrayList
{"id":"01","name":"张三","age":33,"pay":6666.88,"valid":true,"one":"E","birthday":632448000000,"link":{"phone":"13899995555","address":"河南省济源市","qq":"123456"},"map":{"aa":"this is aa","bb":"this is bb","cc":"this is cc"},"list":["普洱","大红袍"],"set":["乒乓球","足球","篮球"]}
pay:6666.88
valid:true
birthday:Tue Jan 16 08:00:00 CST 1990
link:test.Link@350385f1
map:{aa=this is aa, bb=this is bb, cc=this is cc}
list:[普洱, 大红袍]
set:[足球, 乒乓球, 篮球]

jackson 进行json与java对象转换 之三的更多相关文章

  1. jackson 进行json与java对象转换 之二

    主要用于测试学习用jackson包实现json.对象.Map之间的转换. 1.准备测试用的Java类 (1)Link类 package test; /** * Description: 联系方式,被u ...

  2. jackson 进行json与java对象转换 之一

    代码无真相,为了最简单的说明,我直接上代码. public class User { private String name; private Gender gender; private List& ...

  3. jackson 进行json与java对象转换 之四

    jackson简单使用,对象转json,json转对象,json转list   POJO序列化为json字符串: 准备一个POJO: @JsonIgnoreProperties(ignoreUnkno ...

  4. FastJson、Jackson、Gson进行Java对象转换Json细节处理

    前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...

  5. FastJson、Jackson、Gson进行Java对象转换Json的细节处理

    前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...

  6. JSON 与JAVA对象之间的转换(转)

    JSON与XML两者目前在数据交互方面都有很高的使用率,随着现在SOA的兴起,异构系统的整合地位相应提高,本篇文章主要介绍JSON与JAVA对象之间的相互转换. 一.对普通类型的JSON模式的转换 一 ...

  7. Java对象转换成xml对象和Java对象转换成JSON对象

    1.把Java对象转换成JSON对象 apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串.也可以把JavaBean转换成JSON字符串. json-lib的核心 ...

  8. JAVA对象转换JSON

    1. 把java 对象列表转换为json对象数组,并转为字符串 复制代码 代码如下: JSONArray array = JSONArray.fromObject(userlist); String ...

  9. JSON与Java对象的互相转换

    JSON与Java对象的互相转换 例一(单个对象进行赋值): @RequestMapping("test1.do") @ResponseBody public JSONObject ...

随机推荐

  1. TCP的带宽估计和丢包恢复

    一.带宽估计 TCP的带宽估计主要通过拥塞控制算法实现,用到两个变量: 1.cwnd     TCP对当前链路可用带宽的估计 2.ssthreash   拥塞控制算法“假想”出来的可用带宽值 二.丢包 ...

  2. JavaWeb -- Servlet Filter 过滤器

    1. Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter.通过Filter技术,开发人员可以实现用户在 ...

  3. Tensorflow中使用CNN实现Mnist手写体识别

    本文参考Yann LeCun的LeNet5经典架构,稍加ps得到下面适用于本手写识别的cnn结构,构造一个两层卷积神经网络,神经网络的结构如下图所示: 输入-卷积-pooling-卷积-pooling ...

  4. 【疯了Labview】(一)仿JKI的RCF 挂件

    最近在疯狂的学习C#中,学习的最好的一个途径便是论坛,发帖,看帖和被骂,新手往往在这个过程中慢慢长大一直想做个类似JKI RCF挂件的东西,目前实现了,想想其实思路也不是很难, RCF是JKI做的通过 ...

  5. 存储过程,游标,异常捕捉 try catch 实例代码

    1.存储过程代码.  (数据库是 AdventureWorks) 存储过程用来将错误信息插入到指定的表中. 在别的地方可以调用存储过程插入错误信息(下面部分代码 生成一个表,如果表已经存在就会插入错误 ...

  6. shell脚本:利用7z备份git项目

    注:无git的方法参见:tar 或 7z 备份项目 首先利用homebrew安装p7zip $ brew install p7zip 然后利用两个shell脚本: backupProject.sh 会 ...

  7. Hive mapreduce SQL实现原理——SQL最终分解为MR任务,而group by在MR里和单词统计MR没有区别了

    转自:http://blog.csdn.net/sn_zzy/article/details/43446027 SQL转化为MapReduce的过程 了解了MapReduce实现SQL基本操作之后,我 ...

  8. deep learning (五)线性回归中L2范数的应用

    cost function 加一个正则项的原因是防止产生过拟合现象.正则项有L1,L2 等范数,我看过讲的最好的是这个博客上的:机器学习中的范数规则化之(一)L0.L1与L2范数.看完应该就答题明白了 ...

  9. phpstorm修改html模板

  10. 二维码的扫描和生成--第三方开源--ZXing

    ZXing的二维码功能的提取lib下载地址:https://github.com/xuyisheng/ZXingLib 1.扫描二维码: 我们扫描就是要用到这个CaptureActivity类,直接把 ...