用 Jackson 来处理 JSON
2024-10-21 15:52:04
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。
首先创建一个User对象类 (User.java)
package com.sivalabs.json; import java.util.Date; public class User {
private String userId;
private UserName userName;
private Date dob; @Override
public String toString(){
return "User [dob=" + dob + ", userId=" + userId + ", userName="+ userName + "]";
}
//setters and getters }
UserName.java
package com.sivalabs.json; public class UserName {
private String firstname;
private String middlename;
private String lastname; @Override
public String toString()
{
return "UserName [firstname=" + firstname +
", lastname=" + lastname+
", middlename=" + middlename + "]";
}
//setters and getters
}
[Java]代码
//接下来创建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);
执行结果
{
"userId":"1",
"userName":
{
"firstname":"Katamreddy",
"middlename":"Siva",
"lastname":"PrasadReddy"
},
"dob":1300878089906
}
接下来进行JSON到Java对象的转换
String userDataJSON =
"{\"userId\":\"100\",\"userName\":{\"firstname\":\"K\""+
",\"middlename\":\"Siva\",\"lastname\":\"Prasad\"},\"dob\":1300878089906}";
User userFromJSON = mapper.readValue(userDataJSON, User.class);
System.out.println(userFromJSON);
时间的格式化处理
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);
[Java]代码
//从文件中读取JSON数据
User user = mapper.readValue(new File("user.json"), User.class);
</div>
最新文章
- python基础整理笔记(七)
- iOS UIAlertView添加输入框
- eclipse中项目右上方有一个s,eclipse中项目左下方友谊个红色的叉,eclipse中项目左下方友谊个红色的感叹号
- [saiku] 免登陆进入管理后台
- SQLServer使用规范(转载)
- 初涉JavaScript模式 (1) : 简介
- 讯飞语音SDK Android平台使用
- Net社区虚拟大会
- 计算机网络课程优秀备考PPT之第七章应用层(七)
- Python3:递归实现输出目录下所有的文件
- Delphi 10.3中使用JSON
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- C# FTPHelper工具类
- 将当前的Ubuntu系统封装成为可以安装(发布)的iso镜像
- c# winform 为按钮动态背景图片
- 1.1.6版本Druid连接MSSQLServer 2008 R2报错The query timeout value -1 is not valid. #2210
- PCL—低层次视觉—关键点检测(iss&;Trajkovic)
- python自动制作gif并添加文字
- JDK1.8源码LinkedList
- kernel printk信息显示级别