【转】JS中将json序列化与解析(讲jquery对象序列化)

天天无用 2011-03-29

   在www.json.org/json.js下载了这个json工具类

因为JSON 是 javascript 的一个子集,所以,在javascript 中使用JSON是非常简单的。   

js 代码
  1. var myJSONObject = {"bindings": [  
  2.          {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},  
  3.          {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},  
  4.          {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}  
  5.      ]  
  6. };  

在上面的例子中,我们创建了只包含一个成员"bindings"的一个对象,bindings则包含了一个由3个对象组成的数组。这3个对象都包含3个成员:"ircEvent","method","regex"。

在javascript中,成员可以通过“点号”来获取。

比如:

js 代码
  1. myJSONObject.bindings[0].method  

通过eval()函数可以将JSON字符串转化为对象。

js 代码
  1. var myObject = eval('(' + myJSONtext + ')');  

eval函数非常快,但是它可以编译任何javascirpt代码,这样的话就可能产生安全的问题。eval的使用是基于传入的代码参数是可靠的假设的,有一些情况下,可能客户端是不可信任的。

如果基于安全的考虑的话,最好是使用一个JSON解析器。一个JSON解析器将只接受JSON文本。所以是更安全的。

js 代码
  1. var myObject = JSON.parse(myJSONtext, filter);  

可选的filter参数将遍历每一个valuekey值对,并进行相关的处理。如:

js 代码
  1. myData = JSON.parse(text, function (key, value) {       
    1. returnkey.indexOf('date')>=0?newDate(value):value;});

stringifier函数的作用跟parse相反,用来将一个js对象转换为JSON文本。

js 代码
  1. var myJSONText = JSON.stringifier(myObject);  

相关推荐