YUI 三 : json

YUI 3 : json??? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也

YUI 3 : json

??? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

JSON模块综述:

为了是脚本尽可能的小,JSON模块被分成了以下几个部分:

?json-parse,json-stringify,json

?

?? json-parse:解析JSON字符串。

?? json-stringify:将js对象转化为JSON字符串。

?? json:同时实现以上两者。

?

解析JSON字符串到本地JS值
?不使用 eval:

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。

参见:http://www.w3school.com.cn/js/jsref_eval.asp

使用JSON模块的parse方法将更加安全:

?

?

捕获JSON错误

同parse,stringify也需要捕获错误。

循环引用?

?

try {    // BOOM    Y.JSON.parse("{'this string': is, not_valid: ['J','S','O','N'] }");}catch (e) {    alert("A string may eval to the same object, but might not be valid JSON");}// This is safe to stringifyvar myData = {    troop : [        { name: "Ashley", age: 12 },        { name: "Abby", age:9 }    ]}; // Create a cyclical referencemyData.troop[0]["NEWKEY"] = myData;try {    // BOOM    jsonStr = Y.JSON.stringify(myData);} catch (e) {    alert("Cyclical references can sneak in.  Remember to wrap stringify.");}

?

Notes about current native JSON support

?

?