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
?
?
