讓我們看看如何使用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