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

用 Jackson 来处置 JSON

热度:620   发布时间:2012-12-25 16:18:28.0
用 Jackson 来处理 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);

[代码] 执行结果

view sourceprint?

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);


  相关解决方案