Jackson 的地址:
document 非常多:
下载地址:
从这里下载3个jar包, databind,core, annotations.
然后从 下载dataform-xml 这个jar包.
下面的两个例子是抄自: %E5%88%A9%E7%94%A8-jackson
-
import java.io.IOException;
-
import java.text.ParseException;
-
import java.text.SimpleDateFormat;
-
import java.util.ArrayList;
-
import java.util.Date;
-
import java.util.List;
-
import com.fasterxml.jackson.databind.ObjectMapper;
-
-
-
class User{
-
private String name;
-
private Integer age;
-
private Date birthday;
-
private String email;
-
-
public User(){
-
}
-
-
public User(String name, Integer age, Date birthday,String email){
-
this.name = name;
-
this.age = age;
-
this.birthday = birthday;
-
this.email = 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;
-
}
-
}
-
-
public class JacksonExample2 {
-
-
-
-
//static JacksonExample2 x= new JacksonExample2();
-
//java对象转Json
-
-
public static void obj2Json() throws ParseException, IOException{
-
User user = new User();
-
user.setName("小民");
-
user.setEmail("xiaomin@sina.com");
-
user.setAge(20);
-
-
SimpleDateFormat datefmt = new SimpleDateFormat("yyyy-MM-dd");
-
user.setBirthday(datefmt.parse("1996-10-01"));
-
/**
-
* ObjectMapper是JSON操作的核心,Jackson的所有JSON操作都是在ObjectMapper中实现。
-
* ObjectMapper有多个JSON序列化的方法,可以把JSON字符串保存File、OutputStream等不同的介质中。
-
* writeValue(File arg0, Object arg1)把arg1转成json序列,并保存到arg0文件中。
-
* writeValue(OutputStream arg0, Object arg1)把arg1转成json序列,并保存到arg0输出流中。
-
* writeValueAsBytes(Object arg0)把arg0转成json序列,并把结果输出成字节数组。
-
* writeValueAsString(Object arg0)把arg0转成json序列,并把结果输出成字符串。
-
*/
-
ObjectMapper mapper = new ObjectMapper();
-
//User类转JSON
-
//输出结果: {"name":"小民","age":20,"birthday":844099200000,"email":"xiaomin@sina.com"}
-
String json = mapper.writeValueAsString(user);
-
System.out.println(json);
-
-
//Java集合转JSON
-
List<User> users = new ArrayList<>();
-
users.add(user);
-
String jsonlist = mapper.writeValueAsString(users);
-
System.out.println(jsonlist);
-
}
-
-
//JSON转Java类[JSON反序列化]
-
public static void JSON2Class()throws ParseException, IOException{
-
String json = "{\"name\":\"小民\",\"age\":20,\"birthday\":844099200000,\"email\":\"xiaomin@sina.com\"}";
-
/**
-
* ObjectMapper支持从byte[]、File、InputStream、字符串等数据的JSON反序列化。
-
*/
-
ObjectMapper mapper = new ObjectMapper();
-
User user = mapper.readValue(json, User.class);
-
System.out.println(user);
-
}
-
-
public static void main(String[] args)throws ParseException, IOException {
-
// TODO Auto-generated method stub
-
obj2Json();
-
JSON2Class();
-
}
-
-
}
还是来自同样的网站
-
import java.io.IOException;
-
import java.text.ParseException;
-
import java.text.SimpleDateFormat;
-
import java.util.Date;
-
-
import com.fasterxml.jackson.annotation.JsonFormat;
-
import com.fasterxml.jackson.annotation.JsonIgnore;
-
import com.fasterxml.jackson.annotation.JsonProperty;
-
import com.fasterxml.jackson.databind.ObjectMapper;
-
-
/*
-
四、JSON注解
-
Jackson提供了一系列注解,方便对JSON序列化和反序列化进行控制,下面介绍一些常用的注解。
-
@JsonIgnore 此注解用于属性上,作用是进行JSON操作时忽略该属性。
-
@JsonFormat 此注解用于属性上,作用是把Date类型直接转化为想要的格式,如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")。
-
@JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty("name")。
-
*/
-
-
class User2{
-
private String name;
-
-
//不JSON序列化年龄属性
-
@JsonIgnore
-
private Integer age;
-
-
//格式化日期属性
-
@JsonFormat(pattern="yyyy年MM月dd日")
-
private Date birthday;
-
-
//序列化email为mail
-
@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;
-
}
-
}
-
public class JacksonExample3 {
-
-
-
public static void main(String[] args) throws ParseException, IOException{
-
// TODO Auto-generated method stub
-
User2 user = new User2();
-
user.setName("小民");
-
user.setEmail("xiaomin@sina.com");
-
user.setAge(20);
-
-
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
-
user.setBirthday(fmt.parse("1996-10-01"));
-
-
ObjectMapper mapper = new ObjectMapper();
-
String json = mapper.writeValueAsString(user);
-
System.out.println(json);
-
}
-
-
}
阅读(1124) | 评论(0) | 转发(0) |