JSON (Javascript对象符号)正成为一种非常流行的数据交换格式。 在使用诸如YUI,ExtJS,DOJO等Javascript框架开发Web应用程序时,我们可以使用XML或JSON在客户端和服务器之间交换数据。 通常,我们从服务器获得有关Java对象的响应。 然后,在Servlet或Action类中,我们需要从对象构建JSON并将其发送回客户端。 要从Java对象构建JSON响应,我们可以使用非常易于使用的Jackson Java JSON Processor 。

让我们看看如何使用Jackson Java JSON Processor将Java对象转换为JSON,反之亦然。 我们可以从Jackson下载页面下载jackson-all-1.6.4.jar。

进行编组和解组的关键类是org.codehaus.jackson.map.ObjectMapper 。

让我们创建一个User java bean,如下所示:

package com.sivalabs.json;
import java.util.Date;public class User {private String userId;private UserName userName;private Date dob;@Overridepublic String toString(){return "User [dob=" + dob + ", userId=" + userId + ", userName="+ userName + "]";}//setters and getters}
package com.sivalabs.json;
public class UserName {private String firstname;private String middlename;private String lastname;@Overridepublic String toString(){return "UserName [firstname=" + firstname + ", lastname=" + lastname+ ", middlename=" + middlename + "]";}//setters and getters
}

现在让我们创建一个User实例并将其编组为JSON:

ObjectMapper mapper = new ObjectMapper();UserName userName = new UserName();
userName.setFirstname("Katamreddy");
userName.setMiddlename("Siva");
userName.setLastname("PrasadReddy");User user = new User();
user.setUserId("1");
user.setUserName(userName);
user.setDob(new Date());Writer strWriter = new StringWriter();
mapper.writeValue(strWriter, user);
String userDataJSON = strWriter.toString();
System.out.println(userDataJSON);

这将以JSON格式将用户数据打印为:

{
“ userId”:“ 1”,
“用户名”: { “名字”:“ Katamreddy”, “中间名”:“ Siva”, “姓氏”:“ PrasadReddy” }, “ dob”:1300878089906 }

现在,让我们将json格式的以下用户数据编组为User Object:

{
“ userId”:“ 100”,
“用户名”: { “ firstname”:“ K”, “中间名”:“ Siva”, “ lastname”:“ Prasad” }, “ dob”:1300878089906 }

String userDataJSON =
"{\"userId\":\"100\",\"userName\":{\"firstname\":\"K\""+
",\"middlename\":\"Siva\",\"lastname\":\"Prasad\"},\"dob\":1300878089906}";
User userFromJSON = mapper.readValue(userDataJSON, User.class);
System.out.println(userFromJSON);

这会将User对象打印为:

用户[dob = 3月23日星期三16:31:29 IST 2011,userId = 100,userName = UserName [firstname = K,lastname = Prasad,middlename = Siva]]

日期值被编组为时间戳,这是默认行为。 如果需要,可以如下更改DateFormat:

DateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy");
SerializationConfig serConfig = mapper.getSerializationConfig();
serConfig.setDateFormat(dateFormat);
DeserializationConfig deserializationConfig = mapper.getDeserializationConfig();
deserializationConfig.setDateFormat(dateFormat);
mapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);

然后,用户JSON将为:

{
“ userId”:“ 1”,“ userName”:
{ “名字”:“ Katamreddy”, “中间名”:“ Siva”, “姓氏”:“ PrasadReddy” }, “ dob”:“ 2011年3月23日” }

我们还可以将Java对象作为json编组为文件,如下所示:

mapper.writeValue(new File("user.json"), user);

这将创建文件user.json为:

{
“ userId”:“ 100”,
“用户名”: { “ firstname”:“ K”, “中间名”:“ Siva”, “ lastname”:“ Prasad” }, “ dob”:1300878089906 }

我们可以从user,json构建User对象,如下所示:

User user = mapper.readValue(new File("user.json"), User.class);

参考:来自我们JCG合作伙伴Siva Prasad Reddy的 使用Jackson Java JSON Processor的JSON处理 。

相关文章:

  • 使用Gson教程进行Android JSON解析
  • 将JSON功能添加到您的GWT应用程序中
  • Tomcat 7上具有RESTeasy JAX-RS的RESTful Web服务-Eclipse和Maven项目
  • Spring3 RESTful Web服务

翻译自: https://www.javacodegeeks.com/2011/03/java-json-processing-jackson.html

用Jackson进行Java JSON处理相关推荐

  1. JAVA对象通过jackson转成json格式,属性名首字母变成小写的解决方法

    2019独角兽企业重金招聘Python工程师标准>>> java代码对象如下: package com.evideostb.billsystem.module.model;impor ...

  2. java对象转json jackson_使用Jackson将Java对象转换为JSON

    我希望我的JSON看起来像这样: { "information": [{ "timestamp": "xxxx", "featur ...

  3. 使用jackson对Java对象与JSON字符串相互转换的一些总结

    总结一下自己使用 jackson 处理对象与 JSON 之间相互转换的心得. jackson 是一个用 Java 编写的,用来处理 JSON 格式数据的类库,它速度非常快,目前来看使用很广泛,逐渐替代 ...

  4. Java JSON库Jackson 2 x新变化一览

    <Java JSON库Jackson 2.x新变化一览> 作者:chszs,转载需注明. 作者博客主页:http://blog.csdn.net/chszs Jackson库是JSON J ...

  5. Java JSON转Map fastjson、gson、jackson、效率测试对比

    测试Java中json字符串转map的效率, 1,使用的json字符串: 40个键值对:50个键值对 = 1:1 = 66986 x 2 = 133972个json, 每个json的key字符串长度= ...

  6. java json 教程,【简明教程】JSON

    JSON概览 JSON(JavaScript Object Notation)是一种基于文本的数据交换格式.无论你的应用是用哪种开发语言编写的(Java/EE,Ruby,PHP,C#/.Net等等), ...

  7. Spring MVC--使用fastjson替换jackson来响应json数据

    使用fastjson替换jackson来响应json数据. springmvc-config.xml <?xml version="1.0" encoding="U ...

  8. java json 易用_Java中 Json的使用

    Java JSON 本章节我们将为大家介绍如何在 Java 语言中使用 JSON. 类库选择 Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库. 下面是几个常用的 JSON 解析 ...

  9. java json和对象互相装换

    java json和对象互相装换 1.com.alibaba.fastjson.JSON 2.com.fasterxml.jackson.databind.ObjectMapper 转载于:https ...

最新文章

  1. archlinux安装TensorFlow带GPU
  2. sql leftjoin from a,b区别
  3. WordPress 5.2 Beta 3 发布,要求 PHP 5.6.20 以上版本
  4. OAuth的机制原理讲解及开发流程
  5. (68)自旋锁 , cmpxchg8b 指令
  6. decimal这个数据类型的用法,保证你看懂
  7. 勤学如春起之苗,不见其增,日有所长!
  8. Windows 下git 与 github 相关联
  9. 作为一名程序员,我站在人生的十字路口
  10. delphi idtcpclient 发送十六进制00_91413足球推荐分析 法甲 04:00 南特 VS 巴黎圣日尔曼...
  11. LaTeX 注释一行的某一部分
  12. web期末网站设计大作业 HTML+CSS+JS仿爱奇艺官网影视网站
  13. 动态网站作业4-JSP中实现数据库的增删改查的操作
  14. Spring的Tomcat服务关闭后,Quartz进程无法正常关闭,出现内存泄露
  15. 目标跟踪常用算法——UKF篇
  16. 鸿蒙系统怎么没有微信界面,如果鸿蒙系统没有微信,你会选择用吗?
  17. TFS:TF30042数据库已满 the database is full. contact you team foundation server administrator
  18. Tableau雷达图和凹凸图
  19. 一只一元甜筒,一年卖了1200万,宜家的销售阴谋!
  20. 中高级测试工程师68道面试题

热门文章

  1. 基于Apache POI 从xlsx读出数据
  2. 脚本语言和工程语言_语言工程中有趣的事情
  3. arm926ej_EJB超时策略:它们如何提供帮助?
  4. java 泛型和类型擦除_关于Java泛型和擦除
  5. java wcf_尝试将WCF映射到Java术语
  6. jenkins编译java_在Window上使用Jenkins自动发布Java工件
  7. war3必须安装的游戏组件_在单独的WAR组件中对SPA资源和API实现进行分区
  8. J2Pay –完整示例
  9. gradle插件 java_简单的Gradle Java插件自定义
  10. spark减少内存消耗_将内存消耗减少20倍