`

JSON in JavaScript(翻译)

阅读更多
JavaScript is a general purpose programming language that was introduced as the page scripting language for Netscape Navigator. It is widely believed to be a subset of Java, but it is not. It is a Scheme-like language with C-like syntax and soft objects. JavaScript was standardized in the ECMAScript Language Specification, Third Edition.

JSON is a subset of the object literal notation of JavaScript. Since JSON is a subset of JavaScript, it can be used in the language with no muss or fuss.

var myJSONObject = {"bindings": [
        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
        {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
        {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
    ]
};
引用

In this example, an object is created containing a single member "bindings", which contains an array containing three objects, each containing "ircEvent", "method", and "regex" members.
Members can be retrieved using dot or subscript operators.

在这个例子中,一个对象被创建,它有一个"bindings"成员,"bindings"包含了一个数组,这个数组有3个对象,每个对象包含"ircEvent", "method","regex"这3个成员。
成员能通过点,或者下标访问。

myJSONObject.bindings[0].method    // "newURI"
引用

To convert a JSON text into an object, use the eval() function. eval() invokes the JavaScript compiler. Since JSON is a proper subset of JavaScript, the compiler will correctly parse the text and produce an object structure.

转换一个JSON文本为对象,通常使用eval() 函数。eval() 运行在
JavaScript 编译器上。由于JSON是JavaScript的专属子集,编译器将会正确的解析文本,并且构造一个对象。

var myObject = eval('(' + myJSONtext + ')');
引用

The eval function is very fast. However, it can compile and execute any JavaScript program, so there can be security issues. The use of eval is indicated when the source is trusted and competent. This is commonly the case in web applications when a web server is providing both the base page and the JSON data. There are cases where the source is not trusted. In particular, clients should never be trusted.

eval 函数运行非常快。但是,因为他能编译和执行任何JavaScript 程序,所以就存在一些安全问题。如果JavaScript 代码是安全可靠的则可以使用eval 函数。通常情况下WEB应用服务器上运行的程序是既提供基本页面也提供JSON数据。很多情况下这种代码是不可靠的。在某些情况下,客服端是根本不可靠的。

引用

When security is a concern it is better to use a JSON parser. A JSON parser will recognize only JSON text and so is much safer:

当安全性成为使用JSON 解析的一个障碍时,只解析JSON 文本则安全的多:

var myObject = JSON.parse(myJSONtext, filter);

引用

The optional filter parameter is a function that will be called for every key and value at every level of the final result. Each value will be replaced by the result of the filter function. This can be used to reform generic objects into instances of classes, or to transform date strings into Date objects.

可选参数“filter”是一个函数,它会作用于最后结果里面的每一层上的键和值。每一个值将会被filter 函数过滤后重构。这一特性能把普通对象转换为类的实例,或者把日期字符串转化为日期对象。
    myData = JSON.parse(text, function (key, value) {        return key.indexOf('date') >= 0 ? new Date(value) : value;    });
引用

A JSON stringifier goes in the opposite direction, converting JavaScript data structures into JSON text. JSON does not support cyclic data structures, so be careful to not give cyclical structures to the JSON stringifier.

stringifier :将对象转换为字符文本。
JSON stringifier是反向的将一个JavaScript结果转化为JSON文本。JSON不支持循环数据结构,因此小心不要把一个循环结构用JSON stringifier处理。
var myJSONText = JSON.stringify(myObject);
引用

If the stringify method sees an object that contains a toJSON method, it calls the method, and stringifies the value returned. This allows an object to determine its own JSON representation.

如果一个stringifier方法发现一个对象包含有toJSON 方法,它将会调用toJSON 方法,返回字符串化后的值。这就是允许一个对象中断它自己的JSON表述。

引用

The stringifier method can take an optional array of strings. These strings are used to select the properties that will be included in the JSON text. Otherwise, all of the properties of the object will be included. In any case, values that do not have a representation in JSON (such as functions and undefined) are excluded.

stringifier 方法能带一个字符串数组做参数。这些字符串参数被用来筛选将被包含在JSON 文本中的对象的属性。否则,对象所有的属性都将包含在JSON 文本中。在任何情况下,不包含JSON 表达式的值(例如functions、undefined)是被排除的。

The open source code of a JSON parser and JSON stringifier is available. When minified it is less than 2K.
  • json-javascript.rar (7.9 KB)
  • 描述: 附件:来自http://www.json.org/js.html 处理json的js库文件
  • 下载次数: 148
分享到:
评论

相关推荐

    Language Translator App in JavaScript with Source Code.zip

    标题中的“Language Translator App in JavaScript with Source Code”指的是一个基于JavaScript开发的语言翻译应用程序,它包含了源代码,可以供开发者学习和参考。这个应用可能利用了Web API或第三方服务来实现...

    [JavaScript进阶]Professional JavaScript for Web Developers(3rd)

    Zakas所著的JavaScript领域的专业书籍,是《Professional JavaScript for Web Developers》第三版的中文翻译版。这本书旨在帮助读者深入理解JavaScript编程语言,从基础到高级特性,再到最佳实践,涵盖了JavaScript...

    03-JavaScript基础.pptx

    ECMAScript是JavaScript的标准化语法,负责解释和翻译代码;DOM是HTML和XML文档的编程接口,允许JavaScript操作页面元素;BOM则是浏览器提供的对象模型,让JavaScript可以与浏览器交互。 在JavaScript中,变量有...

    rails-i18n-js:适用于JavaScript的Ruby on Rails i18n

    该gem通过Rack中间件公开您的JSON序列化翻译,以便将它们与JavaScript结合使用。 安装 此宝石正在开发中,这些步骤可能会更改 # Gemfile gem 'rails-i18n-js', :git => '...

    es2015-i18n-tag:用于i18n和l10n的ES2015模板文字标签(翻译和国际化)

    此模板文字标记为您JavaScript项目添加了对i18n和l10n(翻译和国际化)的支持。 它具有以下优点: 占地面积很小 强大的语法 基于标准浏览器API的 驱动的翻译 可以集成到您的构建流水线和 产品特点 翻译和国际化您...

    human2machine:将用人类语言编写的应用程序描述翻译成流星厨房输入json

    人对机器该程序将人类语言转换为输入.json文件。... home, customers and about.In home page I want jumbotron with title: "This application is written in English language!", text: "Human to describe app, m

    tatoeba-sentence-pairs:从Tatoeba语料库生成句子对并导出为JSON

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Nim中,我们可以使用内置的json模块来创建JSON对象,并将它们写入文件。对于Tatoeba的句子对,每个...

    Pepper/Nao机器人如何调用百度翻译API

    Naoqi提供了一个基于事件的编程模型,允许开发者通过各种语言(如Python、JavaScript等)编写应用程序,与机器人进行交互。在这个案例中,我们将使用Python来实现调用百度翻译API的功能。 要调用百度翻译API,首先...

    react-native-in-app-notification-master.rar

    React Native 是Facebook推出的一款开源框架,它允许开发者使用JavaScript和React来构建原生移动应用。这个“react-native-in-app-notification-master”项目很显然是一个专注于在React Native应用内实现通知功能的...

    苹果登录官方中文翻译文档

    ### 苹果登录Sign in with Apple:官方中文翻译文档解读 #### 一、背景介绍 在2019年6月的世界开发者大会(WWDC)上,苹果公司宣布推出了一项全新的服务——Sign in with Apple(以下简称SIA)。这项服务旨在提供...

    js通过googleAIP翻译PHP系统的语言配置的实现代码

    在JavaScript中,我们可以使用类似的JSON对象来表示这些配置,例如: ```javascript var $strings = {}; "strings['hide'] = 'hide'; "strings['show'] = 'show'; ``` 这里,我们创建了一个名为 `$strings` 的...

    underi18n:基于JavaScript的模板的国际化的一种简约方法

    underi18n是基于javascript的模板的国际化的一种简约方法。 它可以与其他提供模板的库配合使用,例如或。 它支持变量替换。 产品目录 underi18n使用简单的JSON格式的目录,遵循标准的gettext格式。 在以下示例中, ...

    django项目简单调取百度翻译接口的方法

    如果请求成功,解析返回的JSON数据并提取翻译结果。 前端部分,我们需要创建一个HTML表单让用户输入待翻译的文本,并提交请求。在模板文件中,我们可以添加以下代码: ```html {% csrf_token %} 英汉互译 ...

    Python 实现的 Google 批量翻译功能

    for text in texts_to_translate: translation = translate_text(text) translated_texts.append(translation) ``` 在这个例子中,`translate_text`函数负责发送翻译请求。它会根据输入的文本和目标语言生成Token...

    meeting-room-365-app-translations:会议室365应用程序的i18n文件的集合

    会议室365应用翻译 会议室365应用程序的i18n文件的集合 向365会议室提供翻译 现在,我们使用POEditor在单个Web门户中跟踪多个用户之间的国际化工作。 您可以在这里看一下并做出贡献...es.i18n.json由Overactive Inc.的

    jquery1.9.1中文版

    // JSON RegExp(JavaScript Object Notation:JavaScript对象标记法正则表达式) rvalidchars = /^[\],:{}\s]*$/, rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g...

    grunt-angular-translate:Grunt任务,用于使用AngularJS提取翻译并进行angular-translate

    对于Gruntfile中定义的每个本地,将创建单独的json: { "KEY_IN_VIEW": "", "KEY_IN_SCRIPT": ""}应该在创建的文件中提供翻译。 在下一次运行时, grunt-angular-translate将不会更改已转换的键。 它将仅添加已添加...

    chrome扩展及应用开发

    通过学习并掌握这一技术,你可以创建出各种实用的插件,如网页工具栏、广告拦截器、翻译工具等。 首先,我们要了解Chrome扩展的基本结构。一个基本的Chrome扩展通常包括以下几个部分: 1. **manifest.json**:这是...

    语言:Instatus支持的语言

    在实际应用中,Instatus可能使用了国际化的框架或库来实现这一功能,例如React的`react-intl`库,或者JavaScript的`i18next`库。这些工具可以帮助开发者管理和动态加载不同的语言包,提供动态文本翻译,并且能够根据...

    Localization-in-react:用CodeSandbox创建

    在`Localization-in-react-main`这个压缩包文件中,很可能包含了上述的代码示例,包括React组件、翻译资源文件以及如何配置和使用`react-intl`的示例。你可以通过解压文件,运行CodeSandbox或本地开发环境来查看和...

Global site tag (gtag.js) - Google Analytics