内江网站怎么做seo,凡客的网站功能,软件开发方式,百度投诉中心24人工Java下常见的Json类库有Gson、JSON-lib和Jackson等#xff0c;Jackson相对来说比较高效#xff0c;在项目中主要使用Jackson进行JSON和Java对象转换#xff0c;下面给出一些Jackson的JSON操作方法。 一、准备工作 Jackson有1.x系列和2.x系列#xff0c;2.x系列有3个jar包需…Java下常见的Json类库有Gson、JSON-lib和Jackson等Jackson相对来说比较高效在项目中主要使用Jackson进行JSON和Java对象转换下面给出一些Jackson的JSON操作方法。 一、准备工作 Jackson有1.x系列和2.x系列2.x系列有3个jar包需要下载jackson-core-2.2.3.jar核心jar包jackson-annotations-2.2.3.jar该包提供Json注解支持jackson-databind-2.2.3.jar 一个maven依赖就够了 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.5.3/version
/dependency import java.util.Date;/*** JSON序列化和反序列化使用的User类*/
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;}Overridepublic String toString() {return User{ name name \ , age age , birthday birthday , email email \ };}
} 二、JAVA对象转JSON[JSON序列化] import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.databind.ObjectMapper;public class JacksonDemo {public static void main(String[] args) throws ParseException, IOException {User user new User();user.setName(zhangsan);user.setEmail(zhangsan163.com);user.setAge(20);SimpleDateFormat dateformat new SimpleDateFormat(yyyy-MM-dd);user.setBirthday(dateformat.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:zhangsan,age:20,birthday:844099200000,email:zhangsan163.com}String json mapper.writeValueAsString(user);System.out.println(json);//Java集合转JSON//输出结果[{name:zhangsan,age:20,birthday:844099200000,email:zhangsan163.com}]ListUser users new ArrayListUser();users.add(user);String jsonlist mapper.writeValueAsString(users);System.out.println(jsonlist);}
} 三、JSON转Java类[JSON反序列化] public class JacksonDemo {public static void main(String[] args) throws ParseException, IOException {String json {\name\:\zhangsan\,\age\:20,\birthday\:844099200000,\email\:\zhangsan163.com\};/*** ObjectMapper支持从byte[]、File、InputStream、字符串等数据的JSON反序列化。*/ObjectMapper mapper new ObjectMapper();User user mapper.readValue(json, User.class);System.out.println(user);}
} 结果 User{namezhangsan, age20, birthdayTue Oct 01 00:00:00 CST 1996, emailzhangsan163.com} public class JacksonDemo {public static ObjectMapper mapper new ObjectMapper();public static void main(String[] args) throws ParseException, IOException {String json [{\name\:\zhangsan\,\age\:20,\birthday\:844099200000,\email\:\zhangsan163.com\}];ListUser beanList mapper.readValue(json, new TypeReferenceListUser() {});System.out.println(beanList);}} 结果 [User{namezhangsan, age20, birthdayTue Oct 01 00:00:00 CST 1996, emailzhangsan163.com}] 四、JSON注解 Jackson提供了一系列注解方便对JSON序列化和反序列化进行控制下面介绍一些常用的注解。JsonIgnore 此注解用于属性上作用是进行JSON操作时忽略该属性。JsonFormat 此注解用于属性上作用是把Date类型直接转化为想要的格式如JsonFormat(pattern yyyy-MM-dd HH-mm-ss)。JsonProperty 此注解用于属性上作用是把该属性的名称序列化为另外一个名称如把trueName属性序列化为nameJsonProperty(name)。 import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;import java.util.Date;/*** JSON序列化和反序列化使用的User类*/
public class User {private String name;//不JSON序列化年龄属性JsonIgnoreprivate Integer age;//格式化日期属性JsonFormat(pattern yyyy年MM月dd日)private Date birthday;//序列化email属性为mailJsonProperty(my_email)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;}Overridepublic String toString() {return User{ name name \ , age age , birthday birthday , email email \ };}
} import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;public class JacksonDemo {public static void main(String[] args) throws ParseException, IOException {User user new User();user.setName(zhangsan);user.setEmail(zhangsan163.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);}
} {name:zhangsan,birthday:1996年09月30日,my_email:zhangsan163.com} 本文转载自网络本文仅用于个人学习记录及备忘转载于:https://www.cnblogs.com/xiwai/p/10138328.html