这里写目录标题
1.1 JSON介绍
- JavaScript Object Notation(JavaScript 对表示法)
- JSON是轻量级的文本数据交换格式
- JSON独立于语言 具有自我描述性 更易理解
1.2 语法规则
- 数据由键(key)/值(value)描述 ,由逗号分隔开
- 大括号代表一个完整的对象,拥有多个键/值对
- 中括号保存数组,多个对象之间使用逗号分隔
1.3 利用json存儲員工信息
[
{
"empno": 1234,
"emname": "李宁",
"job": "软件工程师",
"hiredate": "2017-05-12",
"salary": 14000,
"dname": "研发部"
},
{
"empno": 1235,
"emname": "特步",
"job": "客戶經理",
"hiredate": "2017-05-14",
"salary": 14004,
"dname": "市场部",
"customers": [
{"cname":"王源"},
{"cname": "王俊凱"}
]
}
]
1.4 JavaScript访问JSON对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
var json= [
{
"empno": 1234,
"emname": "李宁",
"job": "软件工程师",
"hiredate": "2017-05-12",
"salary": 14000,
"dname": "研发部"
},
{
"empno": 1235,
"emname": "特步",
"job": "客戶經理",
"hiredate": "2017-05-14",
"salary": 14004,"dname": "市场部",
"customers": [
{"cname":"王源"},
{"cname": "王俊凱"}
]
}
];
//在瀏覽器控制臺中對json内容进行输出
console.log(json);
for (var i = 0; i < json.length; i++) {
var emp=json[i];
document.write("<h1>");
document.write(emp.empno);
document.write(",",emp.emname);
document.write(",",emp.job);
document.write(",",emp.hiredate);
document.write(",",emp.dname);
document.write("</h1>")
if (emp.customers !=null){
document.write("<h2>---")
for (var j = 0; j < emp.customers.length; j++) {
var custormer=emp.customers[j];
document.write(custormer.cname+",")
}
}
}
</script>
</head>
<body>
</body>
</html>
1.5JS中将字符串转换为JSON
- JSON.parse() 方法将字符串转换成JSON对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字符串转JSON</title>
<script type="text/javascript">
var str="{\"class_name\":\"五年级四班\"}";
var json=JSON.parse(str);
console.log(str);
console.log(json);
document.write("班级:"+json.class_name);
</script>
</head>
<body>
</body>
</html>
- JSON.steingify()方法将JSON对象转换成字符串
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JSON转字符串</title>
<script type="text/javascript">
var json1={"class_name":"五年级四班"};
var str1=JSON.stringify(json1);
console.log(json1);
console.log(str1);
var json2={};
json2.class_name="五年级五班";
json2.floor="逸夫楼";
json2.teacher="吴加林";
console.info(json2);
</script>
</head>
<body>
</body>
</html>
1.6 FastJson的介绍与下载
- Java的JSON工具包还有FastJson、Jackson、Gson、Json-lib…
- FastJson是阿里巴巴著名的JSON序列化与反序列化工具包
- FastJson国内拥有大量使用者,拥有API简单,效率高等优点
1.7 FastJSON对象序列化与反序列化
package com.imooc;
import com.alibaba.fastjson.annotation.JSONField;
import java.util.Date;
/**
* 包名:com.imooc
*
* @author why
* 日期2021-05-24 15:09
*/
public class Employee {
private Integer empno;
private String ename;
private String job;
@JSONField(format = "yyy-MM-dd")
private Date hdate;
private String dname;
private Float salary;
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 String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public Float getSalary() {
return salary;
}
public void setSalary(Float salary) {
this.salary = salary;
}
}
package com.imooc;
import com.alibaba.fastjson.JSON;
import java.util.Calendar;
/**
* 包名:com.imooc
*
* @author why
* 日期2021-05-24 15:24
*/
public class FastJsonSample1 {
public static void main(String[] args) {
Employee employee=new Employee ();
employee.setEmpno (1111);
employee.setDname ("研发部");
employee.setEname ("李四");
employee.setJob ("客户经理");
employee.setSalary (10000f);
//设置时间
Calendar c = Calendar.getInstance ();
c.set (2019,0,30,0,0,0);
employee.setHdate (c.getTime ());
//FastJSON中提供了JSON对象,完成对象与JSON字符串的互相转换
String json= JSON.toJSONString(employee);
System.out.println (json);
//将json转换成对象
Employee emp = JSON.parseObject (json, Employee.class);
System.out.println (emp);
}
}
package com.imooc;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.List;
/**
* 包名:com.imooc
*
* @author why
* 日期2021-05-24 15:34
*/
public class FastJsonSample2 {
public static void main(String[] args) {
List emplist=new ArrayList ();
for (int i = 1; i <=100 ; i++) {
Employee employee=new Employee ();
employee.setEmpno (222+i);
employee.setEname ("员工"+i);
emplist.add (employee);
}
String json = JSON.toJSONString (emplist);
System.out.println (json);
//把json数组转换成java对象
List<Employee> emps = JSON.parseArray (json, Employee.class);
for (Employee e:emps) {
System.out.println (e.getEmpno ()+":"+e.getEname ());
}
}
}