- 作者:Douglas Crockford
- 原文网址:http://www.json.org/js.html
- 译者:可爱的猴子
JavaScript 这种编程语言首要的目的是为Netscape Navigator提供一种页面脚本语言。它仍被普遍的认为是Java的一个子集,但事实并非如此。 它是一种语法类似c语言 并且支持面向对象 的Scheme -like语言。JavaScript使用了ECMAScript语言规范第三版 进行了标准化。
JSON是JavaScript面向对象语法的一个子集。由于JSON是JavaScript的一个子集,因此它可清晰的运用于此语言中。
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
上面的示例,创建了一个包括单独成员”bindings”的对象,此成员包括一个含有三个对象(”ircEvent”, “method”, 与 “regex”)的数组
成员可以通过.或者下标操作符检索。
myJSONObject.bindings[0].method // "newURI"
为了将JSON文本转换为对象,可以使用eval()函数。eval()函数调用JavaScript编辑器。由于JSON是JavaScript的子集,因此编译器将正确的解析文本并产生对象结构。文本必须括在括号中避免产生JavaScript的语法歧义。
var myObject = eval('(' + myJSONtext + ')');
eval函数非常快速。它可以编译执行任何JavaScript程序,因此产生了安全性问题。当使用可信任与完善的源代码时才可以使用eval函数。这样可以更安全的使用JSON解析器。使用XMLHttpRequest的web应用,页面之间的通讯只允许同源,因此是可以信任的。但这却不是完善的。如果服务器没有严谨的JSON编码,或者没有严格的输入验证,那么可能传送包括危险脚本的无效JSON文本。eval函数将执行恶意的脚本。
使用JSON解析器可以防止此类事件。JSON解析器只能辨识JSON文本,拒绝所有脚本。提供了本地JSON支持的浏览器的JSON解析器将远快于eval函数。预计未来的ECMAScript标准将支持本地JSON。
var myObject = JSON.parse(myJSONtext, reviver);
一个替换函数(reviver function)做为可选参数被最终结果的每一级的键(key)与值(value)调用。 每个值都将被替换函数的值代替。这可以用来将一般的类改变成伪类的实例,或者将日期字符串转变为日期对象。
myData = JSON.parse(text, function (key, value) {
var type;
if (value && typeof value === 'object') {
type = value.type;
if (typeof type === 'string' && typeof window[type] === 'function') {
return new (window[type])(value);
}
}
return value;
});
JSON stringifier进行反向操作,可以把JavaScript数据结构转换为JSON文本。JSON不支持循环数据结构,因此应小心不要为JSON stringifier提供循环结构。
var myJSONText = JSON.stringify(myObject, replacer);
如果stringify函数发现一个带有toJSON方法的对象,它将执行此方法,并且返回产生的值。这样一个对象就可以决定自己的JSON表现。
stringifier方法可以携带一个可选的字符串数组。这些字符串被用于选择包括在JSON文本中的属性。
stringifier方法可以携带一个可选的替代(replacer)函数。它将在结构中每个值的toJSON方法(如果有的话)后面执行。它将每个键与值做为参数传递,当然对象要包含这个键。值将被stringified返回。
如果没有提供数组或替代函数,一个用于忽略被集成的属性的可选替代函数将被提供。如果想要所有被继承的属性,可以提供一个简单的替换函数:
var myJSONText = JSON.stringify(myObject, function (key, value) {
return value;
});
值在JSON中不代表任何内容,函数与未定义(undefined)被排除在外。
不能确定的数量将被替换为null。为了替代其它的值,可以像下面一样使用替换(replacer)函数
function replacer(key, value) {
if (typeof value === 'number' && !isFinite(value)) {
return String(value);
}
return value;
}
开放源代码的JSON解析器与JSON stringifier可以使用。 通过minified 可以小于2.5K。
分享到:
相关推荐
json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】。JavaScript中解析JSON的js包,页面中引入json3.js,即可使用。 使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: ...
JavaScript and JSON Essentials is a step-by-step guide that will introduce you to JSON and help you understand how the lightweight JSON data format can be used in different ways either to store data ...
[Packt Publishing] JavaScript & JSON 核心技术 (英文版) [Packt Publishing] JavaScript and JSON Essentials (E-Book) ☆ 图书概要:☆ Successfully build advanced JSON-fueled web applications with this ...
功能强大的 json editor 源代码,使用 javascript 编写
支持将自身转换成json字符串输出
JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。
Json+javascript歌曲清单源码 项目介绍: 1.服务器接受请求 后台一般处理程序,将音乐文件夹里, 音乐信息转换问Json字符串发送到客户端; 2.客户端将字符串转换为Json对象,将其绑定到页面上; 3.借用雅虎的播放器插件,将...
因项目需求,自己拼接麻烦,所以将javascript拼接json封装成和java类似的操作,直接put() 与 get() 就可以使用,支持json数组,使用的时候只需要 创建对象 并赋值 然后调用内部参数即可,源码中有示例。因为删除操作...
JavaScript 中处理JSON
JavaScript JSON Cookbook 英文mobi 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
javascript 解析json必备利器 JSON.parse(str) JSON.stringify(jsonObj) 等等经典方法扩展。
JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。
json2.js,包JSON-js-master.zip包,json数据解析javascript工具
一个用于将JSON数据转换为Table的JavaScript库
支持键盘和滚轮翻页的javascript读取Json数据分页显示
JSON JavaScript Object Notation 是一种轻量级的数据交换格式 它基于JavaScript(Standard ECMA 262 3rd Edition December 1999)的一个子集 JSON采用完全独立于语言的文本格式 但是也使用了类似于C语言家族的习惯...
XML to JSON and JSON to XML converter
JSON编辑器是一个基于web的工具,用于查看、编辑、格式化和验证JSON。它有各种模式,如树编辑器、代码编辑器和纯文本编辑器。编辑器可以用作您自己的web应用程序中的组件。它可以作为CommonJS模块、AMD模块或常规...
json4lua, JSON ( Javascript对象表示法 http json4lua用于Lua的JSON和 JSONRPC安装luarocks install --server=http://rocks.moonscript.org/manifests/amrhassan --local js
JavaScript中使用Json,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/46741577