注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

jackson处理json对象相关小结  

2012-12-31 17:46:44|  分类: JAVA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。

一、准备工作

1、 下载依赖库jar包

Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar

然后在工程中导入这个jar包即可开始工作

官方示例:http://wiki.fasterxml.com/JacksonInFiveMinutes

因为下面的程序是用junit测试用例运行的,所以还得添加junit的jar包。版本是junit-4.2.8

如果你需要转换xml,那么还需要stax2-api.jar

在解析JSON方面,无疑JACKSON是做的最好的,下面从几个方面简单复习下。 

1 JAVA 对象转为JSON 
 
Java代码 
  1. import java.io.File;  
  2. import java.io.IOException;  
  3. import org.codehaus.jackson.JsonGenerationException;  
  4. import org.codehaus.jackson.map.JsonMappingException;  
  5. import org.codehaus.jackson.map.ObjectMapper;  
  6.    
  7. public class JacksonExample {  
  8.     public static void main(String[] args) {  
  9.    
  10.     User user = new User();  
  11.     ObjectMapper mapper = new ObjectMapper();  
  12.    
  13.     try {  
  14.    
  15.         // convert user object to json string, and save to a file  
  16.         mapper.writeValue(new File("c:\\user.json"), user);  
  17.    
  18.         // display to console  
  19.         System.out.println(mapper.writeValueAsString(user));  
  20.    
  21.     } catch (JsonGenerationException e) {  
  22.    
  23.         e.printStackTrace();  
  24.    
  25.     } catch (JsonMappingException e) {  
  26.    
  27.         e.printStackTrace();  
  28.    
  29.     } catch (IOException e) {  
  30.    
  31.         e.printStackTrace();  
  32.    
  33.     }  
  34.    
  35.   }  
  36.    


输出为: 
{"age":29,"messages":["msg 1","msg 2","msg 3"],"name":"mkyong"} 


2 JSON反序列化为JAVA对象 
  
Java代码 
  1. import java.io.File;  
  2. import java.io.IOException;  
  3. import org.codehaus.jackson.JsonGenerationException;  
  4. import org.codehaus.jackson.map.JsonMappingException;  
  5. import org.codehaus.jackson.map.ObjectMapper;  
  6.    
  7. public class JacksonExample {  
  8.     public static void main(String[] args) {  
  9.    
  10.     ObjectMapper mapper = new ObjectMapper();  
  11.    
  12.     try {  
  13.    
  14.         // read from file, convert it to user class  
  15.         User user = mapper.readValue(new File("c:\\user.json"), User.class);  
  16.    
  17.         // display to console  
  18.         System.out.println(user);  
  19.    
  20.     } catch (JsonGenerationException e) {  
  21.    
  22.         e.printStackTrace();  
  23.    
  24.     } catch (JsonMappingException e) {  
  25.    
  26.         e.printStackTrace();  
  27.    
  28.     } catch (IOException e) {  
  29.    
  30.         e.printStackTrace();  
  31.    
  32.     }  
  33.    
  34.   }  
  35.    

输出:User [age=29, name=mkyong, messages=[msg 1, msg 2, msg 3]] 

3 在上面的例子中,如果要输出的JSON好看点,还是有办法的,就是使用 
defaultPrettyPrintingWriter()方法,例子为: 
Java代码 
  1. User user = new User();  
  2.   ObjectMapper mapper = new ObjectMapper();  
  3.   System.out.println(mapper.defaultPrettyPrintingWriter().writeValueAsString(user));  


则输出整齐: 

  "age" : 29, 
  "messages" : [ "msg 1", "msg 2", "msg 3" ], 
  "name" : "mkyong" 
  评论这张
 
阅读(611)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016