在JavaScript中串行化为JSON—使用json2.js

JavaScript中没有直接串行化对象的内置方法,当然你可以自己写一个,不过我还是强烈推荐你在这里偷个小懒,使用现成的组件,我们可以转换和导出对象结构,还可以使用 json_encode() 使来自 PHP 数据库连接的数据可用于 Ajax 应用程序。
获得完毕json2.js文件后,你可以打开这个文件,在文件的前部分包含了相当大量的注释信息,如果你的英文足够好,那么你可以省略我这一节,参考该文件的注释就可以了,如果作为程序员,你已经看够了大片的字母。
想看看我的汉字+字母,那你可以向下继续了。该文件创建了一个包含两个方法的全局对象JSON,它的方法分别是: 复制内容到剪贴板
代码:

双击代码全选

1

2

<pre class="brush:xml;toolbar:false;">de>JSON.stringify(value, whitelist)de></pre><p>

</p>

 

一个可选的数组参数,用于判定对象值如何被串行化这个方法通过一个JavaScript值来生成JSON文本。在进行串行化时,根据可选的参数whitelist,有三种可能:

如果某个对象有toJSON方法,那么则调用该方法,toJSON方法的返回值将被串行化。
否则,如果可选参数whitelist是一个数组,那么数组中的元素将被用来选择对象进行串行化时的的成员。否则,如果没有使用whitelist参数,则对象的所有成员将被串行化。如果值没有JSON的表现形式,例如undefined或者函数,则其不会被串行化。
在对象中,这样的值会被忽略,而在数组中将会被null替换。JSON.stringify(undefined)会返回undefined。日期将会被串行化为被引用的ISO日期。
代码:

双击代码全选

1

2

3

4

<pre class="brush:js;toolbar:false;">de>var text = JSON.stringify(['e', {pluribus: 'unum'}]); 

//text is '["e",{"pluribus":"unum"}]' 

JSON.parse(text, filter)de></pre><p>

</p>

 

代码:

双击代码全选

1

2

3

4

<pre class="brush:js;toolbar:false;">de>//解析文本,如果某个键包含字符串“date”,则将其值转换为日期 

myData = JSON.parse(text, function (key, value) { 

return key.indexOf('date') >= 0 ? new Date(value) : value;});de></pre><p>

</p>