3 回答
TA贡献1860条经验 获得超8个赞
带/不带引号的键/属性名称有效吗? 在使用对象文字表示法时,唯一需要将键括在引号中的情况是键包含一个特殊字符( if,:,-等等)值得注意的是,JSON中有一个键 必围在 双倍引号。 如果我使用以下方法将上述对象转换为JSON var jSonString = JSON.stringify(testObject);,2(JS obj和JSON)之间有什么区别? 杰森 是一种数据交换格式。这是一个标准,用来描述有序列表和无序映射、字符串、布尔和数字如何用字符串表示。就像XML和YAML是在语言之间传递结构化信息的一种方式一样,JSON也是一样的。另一方面,JavaScript对象是一种物理类型。就像PHP数组、C+类/struct一样,JavaScript对象是JavaScript的内部类型。 这里有个故事。让我们想象一下,你从一家商店买了一些家具,你想把它送货。然而,唯一的库存是显示模型,但你同意购买它。 在商店里,你买的抽屉箱是一个活物: var chestOfDrawers = { color: "red", numberOfDrawers: 4}然而,你不能在邮政寄出一箱抽屉,所以你拆除它(阅读,紧张它)。从家具的角度来说,它现在已经毫无用处了。现在是JSON了。它以扁平的包装形式。 {"color":"red","numberOfDrawers":4}当你收到它,然后你重建抽屉箱(读,解析)。它现在以对象形式返回。 JSON/XML和YAML背后的原因是为了使数据能够以两种参与语言都能理解的方式在编程语言之间传输;您不能直接给PHP或C+JavaScript对象;因为每种语言都代表不同的对象。但是,由于我们已经将对象压缩为JSON表示法;即表示数据的标准化方法,所以我们可以传输JSON 表象对象到另一个langauge(C+,PHP),它们可以 重造我们在他们自己的对象中使用的JavaScript对象 基对象的JSON表示形式。 需要注意的是,JSON不能表示函数或日期。如果试图使用函数成员对象进行字符串化,则将从JSON表示中省略该函数。日期将转换为字符串; JSON.stringify({ foo: new Date(), blah: function () { alert('hello'); }}); // returns the string "{"foo":"2011-11-28T10:21:33.939Z"}"对于解析JSON字符串,建议使用下面的方法吗? var javascriptObj = JSON.parse(jSonString);是的,但是 旧浏览器本机不支持JSON(IE<8) ..要支持这些,您应该包括 json2.js.如果使用jQuery,可以调用 jQuery.parseJSON(),它将使用 JSON.parse()如果支持它,否则将返回到自定义实现来解析输入。
TA贡献1871条经验 获得超8个赞
a = { "!": 1234 } // Valida = { !: 1234 } // Syntax errorvar testObject = { hello: "world" }var jSonString = JSON.stringify(testObject);testObject
testObject.hello => "world"
jsonString
jsonString.hello => undefined
JSON.parseeval
添加回答
举报
