Json速成

什么是 JSON ?

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

  • JSON 是轻量级的文本数据交换格式

  • JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。

  • JSON 具有自我描述性,更易理解

JSON 与 XML / 相同不同之处

  • JSON 和 XML 都用于接收 web 服务端的数据。

  • 没有结束标签,更短(语法更简洁)

  • 读写的速度更快

  • 能够使用内建的 JavaScript eval() 方法进行解析,解析方便

  • 使用数组

为什么使用 JSON?

对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用

Ajax

ps:Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

JSON 语法规则

JSON 语法是 JavaScript 对象表示语法的子集。因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。
JSON 对象中可以包含另外一个 JSON 对象(支持嵌套)

JSON.parse()

JSON 通常用于与服务端交换数据。
在接收服务器数据时一般是字符串。
我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。
JSON 解析在线测试(一定要保证语法正确):https://c.runoob.com/front-end/53。

异常:

JSON 不能存储 Date 对象。
如果你需要存储 Date 对象,需要将其转换为字符串。
之后再将字符串转换为 Date 对象。

var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}'; 
var obj = JSON.parse(text); obj.initDate = new Date(obj.initDate);          
document.getElementById("demo").innerHTML = obj.name + "创建日期: " + obj.initDate;

JSON 不允许包含函数,但你可以将函数作为字符串存储,之后再将字符串转换为函数。

var text = '{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}';
var obj = JSON.parse(text);
obj.alexa = eval("(" + obj.alexa + ")");
document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();

ps:不建议在 JSON 中使用函数。

  • 我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。
  • JSON 不能存储 Date 对象。JSON.stringify() 会将所有日期转换为字符串。
  • JSON 不允许包含函数,JSON.stringify() 会删除 JavaScript 对象的函数,包括 key 和 value。

你可能感兴趣的:(Json速成)