当前位置: 代码迷 >> JavaScript >> Jackson 来处置 JSON
  详细解决方案

Jackson 来处置 JSON

热度:332   发布时间:2012-10-15 09:45:25.0
Jackson 来处理 JSON

Jackson 是一个 Java 用来处理 JSON 格式数据的类库

[代码] 首先创建一个User对象类 (User.java)

01 package com.sivalabs.json;
02 ??
03 import java.util.Date;
04 ???
05 public class User {
06 ?private String userId;
07 ?private UserName userName;
08 ?private Date dob;
09 ????
10 ?@Override
11 ?public String toString(){
12 ??return "User [dob=" + dob + ", userId=" + userId + ", userName="+ userName + "]";
13 ?}
14 ?//setters and getters
15 ????
16 }

[代码] UserName.java

01 package com.sivalabs.json;
02 ??
03 public class UserName {
04 ?private String firstname;
05 ?private String middlename;
06 ?private String lastname;
07 ????
08 ?@Override
09 ?public String toString()
10 ?{
11 ??return "UserName [firstname=" + firstname +?
12 ??", lastname=" + lastname+?
13 ??", middlename=" + middlename + "]";
14 ?}
15 ?//setters and getters
16 }

[代码] [Java]代码

01 //接下来创建User实例,并生成JSON数据
02 ??
03 ObjectMapper mapper = new ObjectMapper();
04 ???
05 UserName userName = new UserName();
06 userName.setFirstname("Katamreddy");
07 userName.setMiddlename("Siva");
08 userName.setLastname("PrasadReddy");
09 ???
10 User user = new User();
11 user.setUserId("1");
12 user.setUserName(userName);
13 user.setDob(new Date());
14 ???
15 Writer strWriter = new StringWriter();
16 mapper.writeValue(strWriter, user);
17 String userDataJSON = strWriter.toString();
18 System.out.println(userDataJSON);

[代码] 执行结果

01 {
02 "userId":"1",
03 "userName":
04 {
05 "firstname":"Katamreddy",
06 "middlename":"Siva",
07 "lastname":"PrasadReddy"
08 },
09 "dob":1300878089906
10 }

[代码] 接下来进行JSON到Java对象的转换

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

[代码] 时间的格式化处理

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

[代码] [Java]代码

1 //从文件中读取JSON数据
2 User user = mapper.readValue(new File("user.json"), User.class);
  相关解决方案