用Jackson进行Java JSON处理
让我们看看如何使用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处理相关推荐
- JAVA对象通过jackson转成json格式,属性名首字母变成小写的解决方法
2019独角兽企业重金招聘Python工程师标准>>> java代码对象如下: package com.evideostb.billsystem.module.model;impor ...
- java对象转json jackson_使用Jackson将Java对象转换为JSON
我希望我的JSON看起来像这样: { "information": [{ "timestamp": "xxxx", "featur ...
- 使用jackson对Java对象与JSON字符串相互转换的一些总结
总结一下自己使用 jackson 处理对象与 JSON 之间相互转换的心得. jackson 是一个用 Java 编写的,用来处理 JSON 格式数据的类库,它速度非常快,目前来看使用很广泛,逐渐替代 ...
- Java JSON库Jackson 2 x新变化一览
<Java JSON库Jackson 2.x新变化一览> 作者:chszs,转载需注明. 作者博客主页:http://blog.csdn.net/chszs Jackson库是JSON J ...
- Java JSON转Map fastjson、gson、jackson、效率测试对比
测试Java中json字符串转map的效率, 1,使用的json字符串: 40个键值对:50个键值对 = 1:1 = 66986 x 2 = 133972个json, 每个json的key字符串长度= ...
- java json 教程,【简明教程】JSON
JSON概览 JSON(JavaScript Object Notation)是一种基于文本的数据交换格式.无论你的应用是用哪种开发语言编写的(Java/EE,Ruby,PHP,C#/.Net等等), ...
- Spring MVC--使用fastjson替换jackson来响应json数据
使用fastjson替换jackson来响应json数据. springmvc-config.xml <?xml version="1.0" encoding="U ...
- java json 易用_Java中 Json的使用
Java JSON 本章节我们将为大家介绍如何在 Java 语言中使用 JSON. 类库选择 Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库. 下面是几个常用的 JSON 解析 ...
- java json和对象互相装换
java json和对象互相装换 1.com.alibaba.fastjson.JSON 2.com.fasterxml.jackson.databind.ObjectMapper 转载于:https ...
最新文章
- archlinux安装TensorFlow带GPU
- sql leftjoin from a,b区别
- WordPress 5.2 Beta 3 发布,要求 PHP 5.6.20 以上版本
- OAuth的机制原理讲解及开发流程
- (68)自旋锁 , cmpxchg8b 指令
- decimal这个数据类型的用法,保证你看懂
- 勤学如春起之苗,不见其增,日有所长!
- Windows 下git 与 github 相关联
- 作为一名程序员,我站在人生的十字路口
- delphi idtcpclient 发送十六进制00_91413足球推荐分析 法甲 04:00 南特 VS 巴黎圣日尔曼...
- LaTeX 注释一行的某一部分
- web期末网站设计大作业 HTML+CSS+JS仿爱奇艺官网影视网站
- 动态网站作业4-JSP中实现数据库的增删改查的操作
- Spring的Tomcat服务关闭后,Quartz进程无法正常关闭,出现内存泄露
- 目标跟踪常用算法——UKF篇
- 鸿蒙系统怎么没有微信界面,如果鸿蒙系统没有微信,你会选择用吗?
- TFS:TF30042数据库已满 the database is full. contact you team foundation server administrator
- Tableau雷达图和凹凸图
- 一只一元甜筒,一年卖了1200万,宜家的销售阴谋!
- 中高级测试工程师68道面试题
热门文章
- 基于Apache POI 从xlsx读出数据
- 脚本语言和工程语言_语言工程中有趣的事情
- arm926ej_EJB超时策略:它们如何提供帮助?
- java 泛型和类型擦除_关于Java泛型和擦除
- java wcf_尝试将WCF映射到Java术语
- jenkins编译java_在Window上使用Jenkins自动发布Java工件
- war3必须安装的游戏组件_在单独的WAR组件中对SPA资源和API实现进行分区
- J2Pay –完整示例
- gradle插件 java_简单的Gradle Java插件自定义
- spark减少内存消耗_将内存消耗减少20倍