【问题标题】:What is the best way to make a JSON object in jQuery?在 jQuery 中创建 JSON 对象的最佳方法是什么?
【发布时间】:2011-09-18 07:11:17
【问题描述】:

在 jQuery 中创建 JSON 对象的最佳方法是什么(不使用解析器或 AJAX)?

var JSONobj = new JSON({'a':'b'})

【问题讨论】:

  • From ECMAScript 5th: "JSON 对象没有 [[Construct]] 内部属性;不可能将 JSON 对象用作带有 new 运算符的构造函数。"

标签: javascript jquery ajax json


【解决方案1】:

JSON(JavaScript 对象表示法)是一种 轻量级数据交换格式。 人类很容易阅读和 写。机器很容易 解析和生成。它基于一个 JavaScript 编程的子集 语言,标准 ECMA-262 第 3 版 版本 - 1999 年 12 月。JSON 是 完全的文本格式 语言无关,但使用 熟悉的约定 C 家族的程序员 语言...这些属性使 JSON 成为 理想的数据交换语言。

source

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.*"}
    ]
};

source

但是,要从外部源解析 JSON 或从您自己的代码序列化 JSON 对象,您将需要一个库,例如 JSON-js,因为 Javascript/ECMAScript 目前不支持此功能,尽管:

预计原生 JSON 支持将包含在下一个 ECMAScript 标准。

【讨论】:

  • ECMAScript 第 5 版。原生支持 JSON。请参阅15.12 - JSON 对象部分。
【解决方案2】:

JSON 是对象的序列化表示。它只是一个字符串。要从 JavaScript 对象创建 JSON 表示,请使用 JSON.stringify

var myObject = { hello: "world", foo: [ "bar", "baz", 42 ] };

JSON.stringify(myObject); // "{"hello":"world","foo":["bar","baz",42]}"

【讨论】:

  • 请注意,并非所有浏览器都支持 JSON.stringify。
  • @Greg - 大多数现代浏览器都会在本地使用support,而对于那些不这样做的浏览器,您可以自己轻松add
【解决方案3】:

您应该能够只使用对象字面量语法:

var JSONobj = {'a':'b'};

【讨论】:

  • 我认为他真的想要一个现有 JavaScript 对象的 JSON 序列化。
【解决方案4】:

我不确定您要做什么,但如果您只想创建一个对象,请创建它...

var myObj = { a : "b" };

【讨论】:

  • 在您的示例中,您创建了一个 javascript 对象,但它不是 JSON。
猜你喜欢
  • 1970-01-01
  • 2020-05-28
  • 1970-01-01
  • 2015-10-15
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多