JSON:JavaScript 对象表示法(JavaScript Object Notation)。web
JSON 是存储和交换文本信息的语法。相似 XML。json
JSON 比 XML 更小、更快,更易解析。数组
JSON 语法是 JavaScript 对象表示法语法的子集。浏览器
JSON 数据的书写格式是:名称/值对。安全
名称/值对包括字段名称(在双引号中),后面写一个冒号,而后是值:服务器
"姓名" : "李明"
这很容易理解,等价于这条 JavaScript 语句:app
姓名 = "李明"
JSON 值能够是:函数
Json格式数据表示方法工具
Json使用花括号表示对象,使用方括号表示数组。二则的组合能够表述具备复杂结构的数据。spa
例如:
{key:value,key2:value2}
[1,2,3,4,4,4,4,5,6,76]
[{"姓名":"李明","年龄":18},{"姓名":"李龙","年龄":19},{"姓名":"李百","年龄":17}]
程序例子:
var myJson = [{ "姓名": "李明", "年龄": 18 }, { "姓名": "李龙", "年龄": 19 }, { "姓名": "李百", "年龄": 17 }]; alert(myJson[0].姓名); //读取姓名 myJson[3].姓名 = "李白"; //修改姓名 alert(myJson[2].姓名); //读取姓名
运行结果以下:
因为运行期间更改了第三个对象的姓名,因此李百变成了李白了。
JSON 最多见的用法之一,是从 web 服务器上读取 JSON 数据(做为文件或做为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,而后在网页中使用该数据。
解析Json
能够使用eval()函数解析Json数据
示例代码:
var str='[{ "姓名": "李明", "年龄": 18 },'+ '{ "姓名": "李龙", "年龄": 19 },'+ '{ "姓名": "李百", "年龄": 17 }]'; var obj = eval(str);
运行结果以下(运行结果截图是在IE11的开发人员工具里的监视内容):
提示:eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。
使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的作法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。
在浏览器中,这提供了原生的 JSON 支持,并且 JSON 解析器的速度更快。
较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了原生的对 JSON 的支持。
Web 浏览器支持
Firefox (Mozilla) 3.5
Web 软件支持