這篇文章主要介紹了Java下利用Jackson進行JSON解析和序列化範例,具有一定的參考價值,有興趣的小夥伴們可以參考一下。
Java下常見的Json類別庫有Gson、JSON-lib和Jackson等,Jackson相對來說比較高效,在專案中主要使用Jackson進行JSON和Java物件轉換,下面給出一些Jackson的JSON操作方法。
一、準備工作
先到官網下載Jackson工具包。 Jackson有1.x系列和2.x系列,截止目前2.x系列的最新版本是2.2.3,2.x系列有3個jar包要下載:
jackson-core-2.2.3.jar
jackson-annotations-2.2.3.jar
jackson-databind-2.2.3.jar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import java.util. Date ;
public class User {
private String name;
private Integer age;
private Date birthday;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday( Date birthday) {
this.birthday = birthday;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
|
登入後複製
SON
、J
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonDemo {
public static void main(String[] args) throws ParseException, IOException {
User user = new User();
user.setName( "小民" );
user.setEmail( "xiaomin@sina.com" );
user.setAge(20);
SimpleDateFormat dateformat = new SimpleDateFormat( "yyyy-MM-dd" );
user.setBirthday(dateformat.parse( "1996-10-01" ));
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(user);
System.out.println(json);
List<User> users = new ArrayList<User>();
users.add(user);
String jsonlist = mapper.writeValueAsString(users);
System.out.println(jsonlist);
}
}
|
登入後複製
三、JSON轉Java類[JSON反序列化]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import java.io.IOException;
import java.text.ParseException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonDemo {
public static void main(String[] args) throws ParseException, IOException {
String json = "{\"name\":\"小民\",\"age\":20,\"birthday\":844099200000,\"email\":\"xiaomin@sina.com\"}" ;
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(json, User. class );
System.out.println(user);
}
}
|
登入後複製
四、JJackson
進行控制,以下介紹一些常用的註解。
@JsonIgnore 此註解用於屬性上,作用是進行JSON操作時忽略該屬性。
@JsonFormat 此註解用於屬性上,作用是把Date類型直接轉換為想要的格式,如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")。
@JsonProperty 此註解用於屬性上,作用是把該屬性的名稱序列化為另外一個名稱,如把trueName屬性序列化為name
,
@JsonProperty("name")。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import java.util. Date ;
import com.fasterxml.jackson.annotation.*;
public class User {
private String name;
@JsonIgnore
private Integer age;
@JsonFormat(pattern = "yyyy年MM月dd日" )
private Date birthday;
@JsonProperty( "mail" )
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday( Date birthday) {
this.birthday = birthday;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
|
登入後複製
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonDemo {
public static void main(String[] args) throws ParseException, IOException {
User user = new User();
user.setName( "小民" );
user.setEmail( "xiaomin@sina.com" );
user.setAge(20);
SimpleDateFormat dateformat = new SimpleDateFormat( "yyyy-MM-dd" );
user.setBirthday(dateformat.parse( "1996-10-01" ));
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(user);
System.out.println(json);
}
}
|
登入後複製
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持PHP中文網。
更多Java下利用Jackson進行JSON解析和序列化範例相關文章請關注PHP中文網!