Json 的优点
Json(javaScript Object Notaion) javaScript 对象表示法
- Json 轻文本数据交互
- Json 的独立于语言,具有自我描述性,更容易理解
Json 语法规则
- 数据由键(key)值(value)对描述 又逗号分割
- 大括号{} 为一个完整的对象,可以有多个键值对
- 中括号[] 保存数组 多个对象有逗号分割
- 例:
[
{
"empon": 7354,
"ename": "李宁",
"job": "java工程师",
"hiredate": "2017-5"
},
{
"empon": 2452,
"ename": "张三",
"job": "java工程师",
"hiredate": "2017-6",
"custorms": [
{
"name": "李四"
},
{
"name": "王五"
}
]
}
]
Json 与javascr 交互使用
因为JavaScript 原生就对Json支持 所以只要和普通数组一样进行遍历就好
<script type="text/javascript">
var json = [
{
"empon": 7354,
"ename": "李宁",
"job": "java工程师",
"hiredate": "2017-5"
},
{
"empon": 2452,
"ename": "张三",
"job": "java工程师",
"hiredate": "2017-6",
"custorms": [
{
"name": "李四"
},
{
"name": "王五"
}
]
}
];
for (var i = 0; i < json.length; i++) {
var emp = json[i];
document.write(emp.empon);
document.write(emp.ename);
document.write(emp.job);
document.write(emp.hiredate);
if (emp.custorms != null) {
for (var j = 0; j < emp.custorms.length; j++) {
document.write(emp.custorms[j].name);
}
}
}
console.log(json);
</script>
Json 与字符串的互相转换
JSON.param(); 字符串转换成Json 对象
JSON.stringify(); 将Json 转换成String对象
Json 与java交互
**json 的序列化工具包 **
- FastJson : 阿里巴巴的著名的Json的序列化和反序列化工具包
- 国内开发者多
- API 简单
- 效率高
- Jackson
- Grson
- Json-lib
FastJson 对象序列化和反序列
- 创建实体类对象
package com.imooc.Json;
public class User {
private String name;
private String age;
private String password;
private String time;
public User(String name, String age, String password, String time) {
this.name = name;
this.age = age;
this.password = password;
this.time = time;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
", password='" + password + '\'' +
", time='" + time + '\'' +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
- 进行序列化
User user=new User("gyc","18","13870420942","time");
String string = JSON.toJSONString(user);
System.out.println(string);
- 进行反序列化
User user1 = JSON.parseObject(string, User.class);
System.out.println(user1);