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. null2. 数据由逗号分隔:多个键值对由逗号分隔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数据格式使用
