日期:2014-05-16  浏览次数:20331 次

js json.js处理json

因为JSON 是 javascript 的一个子集,所以,在javascript 中使用JSON是非常简单的。
????
????
js 代码
?
var?myJSONObject?=?{"bindings":?[???
????????{"ircEvent":?"PRIVMSG",?"method":?"newURI",?"regex":?"^http://.*"},???
????????{"ircEvent":?"PRIVMSG",?"method":?"deleteURI",?"regex":?"^delete.*"},???
????????{"ircEvent":?"PRIVMSG",?"method":?"randomURI",?"regex":?"^random.*"}???
????]???
};???
在上面的例子中,我们创建了只包含一个成员 "bindings" 的一个对象,bindings 则包含了一个由3个对象组成的数组。这3个对象都包含3个成员:"ircEvent", "method","regex"。
在javascript 中, 成员可以通过“点号”来获取。
比如:
js 代码
myJSONObject.bindings[0].method???
通过eval() 函数可以将JSON字符串转化为对象。
js 代码
var?myObject?=?eval('('?+?myJSONtext?+?')');???
eval 函数非常快,但是它可以编译任何 javascirpt 代码,这样的话就可能产生安全的问题。eval 的使用是基于传入的代码参数是可靠的假设的,有一些情况下,可能客户端是不可信任的。
如果基于安全的考虑的话,最好是使用一个 JSON 解析器。 一个 JSON 解析器将只接受 JSON 文本。所以是更安全的。
js 代码
?
var?myObject?=?JSON.parse(myJSONtext,?filter);???
可选的 filter 参数将遍历每一个value key 值对, 并进行相关的处理。如:
js 代码
myData?=?JSON.parse(text,?function?(key,?value)?{????????
return?key.indexOf('date')?>=?0???new?Date(value)?:?value;????});??
stringifier 函数的作用跟 parse 相反, 用来将一个js对象转换为 JSON 文本。
js 代码
var?myJSONText?=?JSON.stringifier(myObject);???
这里是一个开源的?JSON parser and JSON stringifier

?

?

?

?

参考

http://www.mopcos.com