目录
前言
数据交换格式是指服务器和客户端之间的数据传输交换格式,常见的数据交换格式有XML(XMLHttpRequest )和JSON。之前的文章里面就写过了XML,这里主要是理一理JSON。
XMLHttpRequest
概念
可扩展标记语言,用于传输数据,是数据载体。
缺点
- XML格式臃肿,和数据无关的代码多,体积大,传输效率低;
- 在Javascript中解析XML比较麻烦;
JSON
概念
JavaScript对象和数组的字符串表示法,使用文本表示一个js对象或者数组的信息。在计算机与网络之间存储和传输数据。
特点
- JSON的本质是字符串
- 轻量级文本数据交换格式
- JSON是JS对象的字符串表示法
注意事项
- 属性名必须使用双引号包裹
- 字符串类型的值必须使用双引号包裹
- JSON中不允许使用单引号示字符串
- JSON中不能写注释
- JSON的最外层必须是对象或数组格式
- 不能使用undefined或函数作为JSON的值,可以使用null
两种结构
对象结构
对象结构在JSON中表示为{ }括起来的内容
数据结构为:key:value 键值对
- key必须是 英文双引号 包裹字符串
- value 数据类型:数字、字符串、布尔、null、数组、对象
数组结构
对象结构在JSON中表示为 [ ]括起来的内容
数据结构为["java",30,true...]
- 数据类型:数字、字符串、布尔、null、数组、对象
创建json对象
//创建JSON对象
var jsonObject1 = {};
jsonObject1["name"] = "stryang";
jsonObject1["sex"] = "男";
jsonObject1["age"] = 24;
//或者
var jsonObject2 = {"name":"stryang","sex":"男","age":24};
//创建JSON数组
var jsonArray = [];
var jsonObject1 = { "name": "stryang", "sex": "男", "age": 24 };
var jsonObject2 = 2;
var jsonObject3 = null;
var jsonObject4 = [1, 2, 3];
jsonArray.push(jsonObject1);
jsonArray.push(jsonObject2);
jsonArray.push(jsonObject3);
jsonArray.push(jsonObject4);
JSON字符串与js对象相互转换
- JSON字符串转换为JS对象
var jsonStr = '{"name":"stryang","sex":"男","age":24}'; jsonObject = JSON.parse(jsonStr); console.log(jsonObject); console.log(typeof jsonObject);
-
JS对象转换为JSON字符串
var jsonObject = { "name": 'zs', "sex": '男', "age": 24 }; var jsonStr = JSON.stringify(jsonObject); console.log(jsonStr); console.log(typeof jsonStr);