- 作者: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; }
相关推荐
javascript中json对象长度.pdf
javascript中json对象长度.docx
《JavaScript与JSON实用指南》是一本旨在帮助读者理解JSON及其在不同场景中应用的实用书籍。书中不仅介绍了JSON的基础知识,还深入探讨了如何使用JavaScript来有效地处理JSON数据。它从一个简单的JavaScript复习课程...
在JavaScript中,JSON是一种轻量级的数据交换格式,广泛应用于网络数据传输、配置文件存储、数据缓存等多种场景。它易于人阅读和编写,同时也易于机器解析和生成。JSON格式在JavaScript中可以通过对象和数组来表示,...
在JavaScript中,对象转换成JSON(JavaScript Object Notation)是一种常见的数据交换格式,它轻量级、易读、易写,被广泛应用于Web应用程序之间传递数据。JSON格式是基于JavaScript的一个子集,但它并不是...
本文实例讲述了javascript中JSON.parse()与eval()解析json的区别。分享给大家供大家参考,具体如下: JSON(JavaScript Object Notation)是一种轻量级的数据格式,采用完全独立于语言的文本格式,是理想的...
在实际使用中,JSONEditor9.1.4的源代码可以被集成到任何使用JavaScript的Web项目中。开发人员可以通过引入库文件、配置编辑器选项、监听事件等方式来定制编辑器的功能和外观。此外,由于JSONEditor是开源的,开发...
在这个场景中,我们将讨论如何使用JavaScript从JSON数据源中读取数据,并实现支持键盘和滚轮翻页的功能。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于...
在JavaScript中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。处理JSON数据是Web开发中的常见任务,尤其是在与...
[Packt Publishing] JavaScript & JSON 核心技术 (英文版) [Packt Publishing] JavaScript and JSON Essentials (E-Book) ☆ 图书概要:☆ Successfully build advanced JSON-fueled web applications with this ...
在JavaScript中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集。在处理数据时,我们经常需要在JSON对象、JSON数组和JSON字符串之间进行转换,并从这些结构中获取值。...
json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】。JavaScript中解析JSON的js包,页面中引入json3.js,即可使用。 使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: ...
在JavaScript中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集。JSON对象和字符串之间的相互转换是数据操作中的常见任务,特别是在与服务器进行数据交互时。本文将...
JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。
因项目需求,自己拼接麻烦,所以将javascript拼接json封装成和java类似的操作,直接put() 与 get() 就可以使用,支持json数组,使用的时候只需要 创建对象 并赋值 然后调用内部参数即可,源码中有示例。因为删除操作...
在JavaScript中,我们可以通过`JSON.parse()`方法将JSON字符串转换为JavaScript对象: ```javascript var jsonString = '{"name":"John","age":30,"city":"New York"}'; var jsonObject = JSON.parse(jsonString); ...
在IT行业中,RemObjects JavaScript和JSON是两种非常重要的技术,特别是在跨平台开发和数据交换方面。本实例将探讨如何在Delphi 7环境下利用RemObjects JavaScript库与JSON进行交互,从而实现更高效的通信和数据处理...
在JavaScript中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。JSON格式通常用于传输数据,尤其是在Web应用中。本篇...
在JavaScript编程中,处理JSON数据是非常常见的任务。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在JavaScript中,有两个非常重要的内置函数,...