Json的使用和FastJSON的使用
阿新 • • 發佈:2021-02-01
利用Json儲存員工資訊
建立emp.json檔案
[ { "empno": 110, "ename": "李白", "job": "軟體工程師", "hiredate": "2021-01-12", "salary": 13000, "dname": "開發部" }, { "empno": 111, "ename": "王維", "job": "客戶經理", "hiredate": "2020-11-23", "salary": 23000, "dname": "市場部", "customers": [ { "cname": "小白" }, { "cname": "小明" }, { "cname": "jack" } ] }, { "empno": 111, "ename": "杜甫", "job": "專案經理", "hiredate": "2000-10-13", "salary": 30000, "dname": "市場部" } ]
使用js訪問json資料
sample.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> var json = [ { "empno" : 110, "ename" : "李白", "job" : "軟體工程師", "hiredate" : "2021-01-12", "salary" : 13000, "dname" : "開發部" }, { "empno" : 111, "ename" : "王維", "job" : "客戶經理", "hiredate" : "2020-11-23", "salary" : 23000, "dname" : "市場部", "customers" : [ { "cname" : "小白" }, { "cname" : "小明" }, { "cname" : "jack" } ] }, { "empno" : 111, "ename" : "杜甫", "job" : "專案經理", "hiredate" : "2000-10-13", "salary" : 30000, "dname" : "市場部" } ]; //控制檯輸出 console.log(json); for(var i=0;i<json.length;i++){ var emp=json[i]; document.write("<h1>"); document.write("序號:"+(i+1)); document.write(","+emp.empno); document.write(","+emp.ename); document.write(","+emp.job); document.write(","+emp.hiredate); document.write(","+emp.salary); document.write(","+emp.dname); document.write("</h1>"); if(emp.customers!=null){ document.write("<h2>"); for(var j=0;j<emp.customers.length;j++){ var cus=emp.customers[j]; document.write(cus.cname+" "); } document.write("</h2>"); } } </script> </head> <body> </body> </html>
Json與字串物件互相轉換
- JSON.parse()方法將字串轉換為JSON物件
<script type="text/javascript"> var str="{\"class_name\":\"軟體工程1班\"}"; //字串 var json=JSON.parse(str); //字串轉json物件 console.log(json); console.log(str); document.write("班級:"+json.class_name); </script>
- JSON.stringify()方法將JSON物件轉換為字串
<script type="text/javascript">
var json1={"class_name":"電腦科學2班"}; //json物件轉字串
var str1=JSON.stringify(json1);
console.log(json1);
console.log(str1);
</script>
FastJSON的使用
java的JSON的工具包,把java物件轉換成json物件
下載https://github.com/alibaba/fastjson/wiki/Quick-Start-CN
物件序列化與反序列化
Employee.java
package com.ulikeme.json;
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")
private Date hdate;
private Float salary;
/**
* 此註解設定不對dname序列化
*/
@JSONField(serialize=false)
private String dname;
public Employee(Integer empno, String ename, String job, Date hdate, Float salary, String dname) {
super();
this.empno = empno;
this.ename = ename;
this.job = job;
this.hdate = hdate;
this.salary = salary;
this.dname = 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;
}
}
FastJsonSample1.java
package com.ulikeme.json;
import java.util.Calendar;
import com.alibaba.fastjson.JSON;
public class FastJsonSample1 {
public static void main(String[] args) {
// TODO 自動生成的方法存根
//設定時間
Calendar c=Calendar.getInstance();
c.set(2018, 00, 20);
Employee employee=new Employee(110, "李白", "程式設計師",c.getTime() ,10000f, "開發部");
//FastJson中提供了Json物件,完成物件與json物件的互相轉換
String json= JSON.toJSONString(employee);
System.out.println(json);
System.out.println("---------------------");
//將json轉換成物件
Employee emp= JSON.parseObject(json, Employee.class);
System.out.println(emp.getEname());
}
}
物件陣列序列化與反序列化
public class FastJsonSample2 {
public static void main(String[] args) {
// TODO 自動生成的方法存根
List emplist=new ArrayList();
for(int i=1;i<=10;i++) {
Employee employee=new Employee();
employee.setEmpno(100+i);
employee.setEname("員工"+i);
emplist.add(employee);
}
//可以把陣列,list,set進行json格式化輸出
System.out.println();
String json= JSON.toJSONString(emplist);
System.out.println(json);
//json陣列轉換成物件
List<Employee> emps=JSON.parseArray(json,Employee.class);
for(Employee e:emps) {
System.out.println(e.getEname()+":"+e.getEmpno());
}
}
}