JSON与Java交互
java的JSON工具包还有FastJson(阿里巴巴开发),Jackson ,Gson Json-lib
FastJson是阿里巴巴著名的JSON序列化与反序列工具包
FastJson国内拥有大量的使用者,拥有API简单 效率高等优点
www.github.com 全世界最著名的开源软件平台
fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。 总之就是提供了对象与JSON 之间的转换
在pom.xml添加fastjson依赖配置
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.15</version>
</dependency>
Java对象与JSON的序列化与反序列
//FastJSON中提供了JSON对象,完成对象与JSON字符串的互相转换
//JAVA对象-->JSON
String json = JSON.toJSONString(employee);
System.out.println(json);
//JSON -->JAVA对象
Employee emp = JSON.parseObject(json, Employee.class);
System.out.println(emp.getEname());
打印输出:
import java.util.Date;
import com.alibaba.fastjson.annotation.JSONField;
public class Employee {
private Integer empno;
private String ename;
private String job;
//时间格式
//@JSONField(format="yyyy-MM-dd HH:mm:ss SSS")
@JSONField(name = "hiredate" , format="yyyy-MM-dd")
private Date hdate;
private Float salary;
//此属性不转换为JSON格式
@JSONField(serialize = false)
private String dname;
public Integer getEmpno() {
return empno;
}
public void setEmpno(Integer empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public Date getHdate() {
return hdate;
}
public void setHdate(Date hdate) {
this.hdate = hdate;
}
public Float getSalary() {
return salary;
}
public void setSalary(Float salary) {
this.salary = salary;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
}
package com.imooc.json;
import java.util.Calendar;
import com.alibaba.fastjson.JSON;
public class FastJsonSample1 {
public static void main(String[] args) {
Employee employee = new Employee();
employee.setEmpno(4488);
employee.setEname("王晓东");
employee.setJob("客户经理");
employee.setSalary(10000f);
employee.setDname("市场部");
Calendar c = Calendar.getInstance();
c.set(2019, 0, 30, 0, 0, 0);
employee.setHdate(c.getTime());
//FastJSON中提供了JSON对象,完成对象与JSON字符串的互相转换
//JAVA对象-->JSON
String json = JSON.toJSONString(employee);
System.out.println(json);
//JSON -->JAVA对象
Employee emp = JSON.parseObject(json, Employee.class);
System.out.println(emp.getEname());
}
}