AJAX
JSON
- 概念:JavaScript Object Notation JavaScript对象表示法 ```java Person p = new Person(); p.setName(“张三”); p.setAge(23); p.setGender(“男”);
var p = {“name”:”张三”,age:23,’gender’:”男”};
1. **json现在多用于存储和交换文本信息的语法**。
1. **进行数据的传输**
1. **JSON比XML更小、更快、更易解析**。
2. 语法:
1. 基本规则
1. 数据在名称/值对中:json数据是由键值对构成的
1. 键用引号(单双都行)引起来,也可以不使用引号
1. 值的取值类型:
1. 数字(整数或浮点数)
1. 字符串(在双引号中)
1. 逻辑值(true或false)
1. 数组(在方括号中){"person":[{},{}]}
1. 对象(在花括号中){"address":{"province":"陕西"...}}
1. null
2. 数据由逗号分隔:多个键值对由逗号分隔
2. 花括号保存对象:使用{}定义Json格式
2. 方括号保存数组:[]
2. 获取数据
1. json对象.键名
1. json对象["键名"]
1. 数组对象[索引]
1. 遍历
```html
<script>
var person = {"name": "张三", age: 23, 'gender': true};
var ps = [
{"name": "张三", age: 23, 'gender': true},
{"name": "李四", age: 24, 'gender': true},
{"name": "王五", age: 25, 'gender': false}
];
// 获取person对象中所有的键和值
// for in 循环
/*for (var key in person) {
// 这样的方式获取不到,因为相当于 person."name"
// alert(key + ":" + person.key);
alert(key + ":" + person[key]);
}*/
// 获取ps中的所有值
for (var i = 0; i < ps.length; i++) {
var p = ps[i];
for (var key in p) {
alert(key + ":" + p[key]);
}
}
</script>
- Json数据和Java对象之间相互转换
Json解析器:
- 常见的解析器:Jsonlib,Gson,fastjson,jackson
- Json转为Java对象
- 使用步骤:
- 导入Jackson的相关jar包
- 创建Jackson核心对象ObjectMapper
- 调用ObjectMapper的相关方法进行转换
- 转换方法:
- redValue(json字符串数据,class):
- 转换方法:
- 使用步骤:
- Java对象转为Json
- 使用步骤:
- 导入Jackson的相关jar包
- 创建Jackson核心对象ObjectMapper
- 调用ObjectMapper的相关方法进行转换
- 转换方法:
- writeValue(参数1, obj):
- 参数1:
- File:将obj对象转换为Json字符串,并保存到指定得到文件夹中
- Writer:将obj对象转换为Json字符串,并将json数据填充到字符输出流中
- OutputStream:将obj对象转换为Json字符串,并将json数据填充到字节输出流中
- 参数1:
- writeValueAsString(obj):将对象转为json字符串
- writeValue(参数1, obj):
- 注解:
- @JsonIgnore:排除属性。
- @JsonFormat:属性值的格式化。
- @JsonFormat(pattern = “yyyy-MM-dd”)
- 复杂的java对象转换
- List:数组
- Map:对象格式一致
- 转换方法:
- 使用步骤:
案例
- 校验用户名是否存在
- 服务器响应的数据,在客户端使用时,要想当做json数据格式使用
- $.get(type):将最后一个参数type指定为”json”
- 在服务器设置MIME类型
- response.setContentType(“application/json;charset=utf-8”);
- 服务器响应的数据,在客户端使用时,要想当做json数据格式使用