JSON

PHP串行化与JSON

字号+ 作者:H5之家 来源:H5之家 2015-10-03 14:01 我要评论( )

PHP串行化与JSON,串行化即将变量转换成字节流的过程。

WebjxCom提示:串行化即将变量转换成字节流的过程。



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

JavaScript中没有直接串行化对象的内置方法,当然你可以自己写一个,不过我还是强烈推荐你在这里偷个小懒,使用现成的组件,JSON的官方网站提供了对JavaScript对象实现JSON串行化的代码库—json2.js,你可以从这里获得它。
获得完毕json2.js文件后,你可以打开这个文件,在文件的前部分包含了相当大量的注释信息,如果你的英文足够好,那么你可以省略我这一节,参考该文件的注释就可以了,如果作为程序员,你已经看够了大片的字母,想看看我的汉字+字母,那你可以向下继续了。
简单的翻译下这个注释:
可参考
该文件创建了一个包含两个方法的全局对象JSON,它的方法分别是:

代码: JSON.stringify(value, whitelist)

value    任意的JavaScript值,一般是一个对象或者数组
whitelist    一个可选的数组参数,用于判定对象值如何被串行化
这个方法通过一个JavaScript值来生成JSON文本。在进行串行化时,根据可选的参数whitelist,有三种可能:
如果某个对象有toJSON方法,那么则调用该方法,toJSON方法的返回值将被串行化。
否则,如果可选参数whitelist是一个数组,那么数组中的元素将被用来选择对象进行串行化时的的成员。
否则,如果没有使用whitelist参数,则对象的所有成员将被串行化。
如果值没有JSON的表现形式,例如undefined或者函数,则其不会被串行化。在对象中,这样的值会被忽略,而在数组中将会被null替换。
JSON.stringify(undefined)会返回undefined。日期将会被串行化为被引用的ISO日期。
例:

代码: var text = JSON.stringify(['e', {pluribus: 'unum'}]);
//text is '["e",{"pluribus":"unum"}]'
JSON.parse(text, filter)

该方法解析一个JSON文本,并生成一个组件或者数组,其可能抛出一个SyntaxError异常。
可选的filter参数是一个可过滤和转换结果的函数、它接受每个键和值,它的返回值用来替换源值。如果它返回所接收的值,那么结果不会被改变。如果他返回undefined,则该成员会被删除。
例:

代码: //解析文本,如果某个键包含字符串“date”,则将其值转换为日期
myData = JSON.parse(text, function (key, value) {
return key.indexOf('date') >= 0 ? new Date(value) : value;
});

上面的入门教程已经使你基本了解了json2.js的使用方法,这里关于该文件我就不再赘述了,只是有一个小提示,如果你想简单的解析一个JSON文本,那么可以使用eval()函数,改函数是JavaScript的内置函数,例如解析在JSON.stringify的案例中生成的JSON文本,可以使用:

代码: var myE = eval('["e",{"pluribus":"unum"}]');

来获得对象myE。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • php CI 实战教程:[5]用curl获取json并解析

    php CI 实战教程:[5]用curl获取json并解析

    2016-02-26 17:00

  •  JSON入门级学习总结-JSON数据结构

    JSON入门级学习总结-JSON数据结构

    2016-02-25 11:05

  • Android解析Json速度最快的库:json

    Android解析Json速度最快的库:json

    2016-02-13 18:00

  • JavaScript转换与解析JSON方法实例详解第1/2页

    JavaScript转换与解析JSON方法实例详解第1/2页

    2016-02-10 21:25

网友点评
t