Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。
Jackson社区相对比较活跃,更新速度也比较快。
官网:
http://www.fasterxml.com
http://jackson.codehaus.org/Home
Github:
https://github.com/FasterXML/jackson
wiki:
http://wiki.fasterxml.com/JacksonHome
在工程中导入jar包即可开始工作
官方示例:http://wiki.fasterxml.com/JacksonInFiveMinutes
package com.awshu.test.json;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.util.Date;
import org.codehaus.jackson.*;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class JsonTest {
public static void main(String args[]) throws JsonGenerationException, JsonMappingException, IOException {
// jsonGenerat();
jsonParse();
}
public static void jsonGenerat() throws JsonGenerationException, JsonMappingException, IOException {
ObjectMapper map = new ObjectMapper();
Username name = new Username();
name.setFirstname("wen");
name.setMiddlename("a");
name.setLastname("shu");
User u = new User();
u.setUserid("1");
u.setUsername(name);
u.setDate(new Date());
Writer writer = new StringWriter();
map.writeValue(writer, u);
String jsonData = writer.toString();
System.out.println(jsonData);
}
public static void jsonParse() throws JsonParseException, JsonMappingException, IOException {
ObjectMapper map = new ObjectMapper();
String jsonstr = "{\"username\":{\"firstname\":\"wen\",\"middlename\":\"a\",\"lastname\":\"shu\"},\"userid\":\"1\",\"date\":1402847818123}";
User u = map.readValue(jsonstr, User.class);
System.out.println(u);
}
}
package com.awshu.test.json;
import java.util.*;
public class User {
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public Username getUsername() {
return username;
}
public void setUsername(Username name) {
this.username = name;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
private String userid;
private Username username;
private Date date;
public String toString() {//测试
return "User [date = " + date + ", userid = " + userid + ", username = " + username + "]";
}
}
package com.awshu.test.json;
public class Username {
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getMiddlename() {
return middlename;
}
public void setMiddlename(String middlename) {
this.middlename = middlename;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
private String firstname;
private String middlename;
private String lastname;
public String toString() {
return "Username [firstname = " + firstname + ", middlename = " + middlename + ", lastname = " + lastname + "]";
}
}