JSON 是 JavaScript Object Notation 的缩写,是一种轻量级的数据交换格式。JSON 是基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一个子集。
JSON 是独立于任何语言的文本格式。易于程序员阅读和编写,同时也易于计算机解析和生成。
JSON 的中文官网地址: http://www.json.org/isonzh.html
JSON 格式的构建比较简单,主要为两种结构:
JSON 格式中的“名称/值”对的集合是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“”(冒号);“‘名称/值’对”之间使用“”(逗号)分隔。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uyyylfr6-1638491019484)(C:\Users\86175\Desktop\启嘉\Git\jody\Ajax\第一天\QQ截图20201114150808.png)]
JSON 格式中的值的有序列表是值( value )的有序集合。一个数组以“[”(左中括号)开始,“P(右中括号)结束。值之间使用“,”(逗号)分隔。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K7ezejMm-1638491019486)(C:\Users\86175\Desktop\启嘉\Git\jody\Ajax\第一天\QQ截图20201114150950.png)]
JSON 具有独立的文件,扩展名为“ison”。该文件中允许保存 JSON 格式的数据。
{
"name": "卧龙学苑",
"addr": "保定市复兴中路77号直隶大厦1516室",
"classes": ["Web前端就业课程", "Web前端生涯规划课程"]
}
注意:在 JSON 文件中编写“名称/值”对的集合时,作为“名称”的 Key 必须使用双引号(“”)包裹。
JSON 是一种语法,用来序列化对象、数组、数值、字符串、布尔值和 null。它基于 JavaScript 语法,但与之不同:JavaScript 不是 JSON,JSON 也不是 JavaScript。
JavaScript 类型 | JSON 的不同点 |
---|---|
对象和数组 | 属性名称必须是双引号括起来的字符串;最后一个属性后不能有逗号 |
数值 | 禁止出现前导零 |
字符串 | 只有有限的一些字符可能被转义 |
JSON 字符串就是指在 JavaScript 语言中内容格式符合 JSON 格式的字符串类型的数据。
var jsonText = 't"name":"启嘉班" ," addr":"河北软件"};
JSON 对象就是指 JSON 格式在 JavaScript 语言中的具体表现形式为对象或数组。
var jsonObject = {
name: "启嘉班",
addr: "河北软件",
};
JavaScript 语言中存在 JSON 对象,该对象用于实现字符串与对象之间的转换。其提供以下两个方法:
JSON.parse('');//{}
JSON.parse('true'); /l trueJSON.parse(""foo""); /l "foo"
JSON.parse('[1,5, "false"]');//[1,5, "false"]JSON.parse( 'null'); // null
JSON.stringify();// {}
JSON.stringify(true); l/ 'true'JSON.stringifv( "foo"); /l "foo""
JSON.stringify([1, "false", false]);/l '[1,"false",false]'JSON.stringify({ x: 5 });//'{"x":5}
注意:JSON 对象在旧版本的刘览器中不被支持,引人 json2js 文件进行解决。
通过 Ajax 向服务器端提交异步请求时,允许使用 JSON 格式的请求数据。如下示例代码所示:
//使用对象类型存储请求数据
var obj=- {
"name": "启嘉班",
"addr": "河北软件"
}
//将JSON对象转换为JSON字符串
var jsonText = JSON.stringify(obj);
//将构建的请求数据传递给XMLHttpRequest对象的send()方法
httpRequest.send( jisonText);