一、XML
简介:
XML 是一种数据交互格式,特定格式的字符串; 虽然可以传输、存储 复杂数据,但是其解析过于复杂并且体积较大: 使用 XML进行数据交互,需要先将 XML 解析成 DOM文档,再从中提取数据;相对而言,JSON更简单,应用更广泛
XML 是一种可扩展的标记语言,需要申明当前文档是xml格式;很类似 HTML
设计初衷:
XML 的设计初衷是 传输、存储数据;有别于 HTML,HTML的设计初衷是 显示数据
XML 也可以运行在浏览器上,浏览器 会默认以html格式解析
语法 特点:
XML 的语法 非常严格: 区分英文大小写;不会忽略空格、换行
必须有文档声明:
<?xml version="1.0" encoding="GBK"?>
必须有 且 仅有一个根标签:
需要自行定义标签 且必须有结束标签: XML 标签没有被预定义
注释: 不能写在顶部;注释语法为
<!--这是注释-->
属性: 属性值一定要用 引号(单引号、双引号) 括起来;且元素中 属性不能重复
二、JSON
简介:
JSON 是另一种 轻量级的文本数据交互格式,独立于语言
形式: 对象
{ }
;数组[ ]
语法 特点:
key-value
形式: 键名必须用双引号括起来;值是字符串的话必须用双引号括起来每个键值对之间,用 逗号隔开
JSON体积小、解析方便且高效
JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 布尔值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
文本数据交互规则:
JSON数据 在不同语言进行传输时,类型为字符串;不同的语言 各自有对应有解析方法,需要解析完成后才能读取
以json格式传输数据时,要求响应内容格式是
application/json
(也可以不设置,但是这遵循的一个规范)
三、 JSON 解析
应用场景
- JSON 在不同语言间的数据交互 很受欢迎;不同语言间传输时,JSON需要转成字符串类型,不同的语言 各自有对应有解析方法,需要解析完成后才能读取
Javascript 解析方法
解析方法 依赖于:
JS中的
JSON
内置对象(ECMAScript5 定义的)低版本IE中,不存在
JSON
内置对象,可引入json2.js
插件 解决问题
序列化: js中的 Object 转化为 JSON字符串
实现方式:
JSON.stringify(obj)
【最佳】obj.toJSONString()
反序列化: js中 JSON字符串 转化为 Object
实现方式:
JSON.parse(data)
【最佳】data.parseJSON()
eval("("+data+")")
:【最早期的解析方法】由于json是以”{}”的方式来开始以及结束的,JS中会被当做一个语句处理
PHP 解析方法
json_encode()
:译成公共样式的 php数组/对象 转成 JSON字符:传给前端才能用json_decode(json字符,true)
: 解析成 PHP 能使用的数据格式