JSON

PHP serialize JSON 解析

字号+ 作者:H5之家 来源:H5之家 2017-06-13 16:01 我要评论( )

当然也可以变得复杂些。例二:vartest={User:{Name:Peter,Age:20},Company:FORD};document.write(test.User.Name#43;:#43;test.Company);显示结果:Peter:FORD这个

PHP serialize & JSON 解析

来源: 网络

随机为您推荐的文章:解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示

本文将为关注织梦者的朋友提供的是的解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示相关教程,具体实例代码请看下文:解决分析:

当然也可以变得复杂些。
例二:

vartest={"User":{"Name":"Peter","Age":20},"Company":"FORD"};
document.write(test.User.Name+":"+test.Company);

显示结果:

Peter:FORD

这个例子中User元素中包含了Name和Age。

如果要体现多个User,则需要使用数组,区别于对象的"{}",数组使用"[]"。
例三:

vartest=[
{"User":{"Name":"Peter","Age":20},"Company":"FORD"},
{"User":{"Name":"LiMing","Age":20},"Company":"Benz"}
];
document.write(test[1].User.Name+":"+test[1].Company);
//或者使用:document.write(test[1]["User"]["Name"]+":"+test[1]["Company"]);

显示结果:

LiMing:Benz


通过以上简单实例就能将一些复杂数据通过一个字符串来进行传递,再配合上Ajax的确是方便很多。
下面再来看看PHP的serialize函数的作用。
例四:

$arr=array
(
'Peter'=>array
(
'Country'=>'USA',
'Age'=>20
),
'LiMing'=>array
(
'Country'=>'CHINA',
'Age'=>21
)
);

$serialize_var=serialize($arr);
echo$serialize_var;

显示结果:

a:2:{s:5:"Peter";a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;}s:7:"LiMing";a:2:{s:7:"Country";s:5:"CHINA";s:3:"Age";i:21;}}

这个结果看上去比JSON要复杂一些,其实也很简单,它说明的就是一些数据类型和结构。
以a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;}为例:
a:2说明这是个有两个元素的数组(array),
s:7:"Country";s:3:"USA";为第一个元素,s:7说明这是有7个字符的字符串(string),
后面i:20;也应该猜得到是整数(integer)20。

再来看一下这个例子,
例五:

classtest
{
var$var=0;
functionadd(){
echo$var+10;
}
}

$unserialize_var=newtest;
$serialize_var=serialize($unserialize_var);
echo$serialize_var;
$unserialize_var=null;
$unserialize_var=unserialize($serialize_var);
$unserialize_var->add();

显示结果:

O:4:"test":1:{s:3:"var";i:0;}
10

从这个例子中可以看出来,serialize对数据的类型和结构都进行的保存,
unserialize后的变量仍然可以使用add()方法。

那么PHP和JSON有没有联系呢,熟悉PHP的朋友应该了解PHP5.2.0已经将JSON extension设置为默认组件,也就是说我们可以在PHP中进行JSON操作,其函数为json_encode和json_decode。
例六:

$arr=array
(
'Name'=>'Peter',
'Age'=>20
);

$jsonencode=json_encode($arr);
echo$jsonencode;

显示结果:

{"Name":"Peter","Age":20}

这个结果和例一中test值是一样的,通过json_encode将PHP中的变量转换为JSON字符出表达式。
再来看看json_decode的用法。
例七:

$var='{"Name":"Peter","Age":20}';
$jsondecode=json_decode($var);
print_r($jsondecode);

显示结果:

stdClassObject([Name]=>Peter[Age]=>20)

这的确验证了,在JSON中{"Name":"Peter","Age":20}是一个对象,但是在PHP中也可以将其转为数组,在json_decode中将ASSOC参数设置为True即可。
例八:

$var='{"Name":"Peter","Age":20}';
$jsondecode=json_decode($var,true);
print_r($jsondecode);

显示结果:

Array([Name]=>Peter[Age]=>20)


另,需要注意的是JSON是基于Unicode格式,所以要进行中文操作要将其转化为UTF-8格式。
通过上面这些例子相信大家对于JSON和PHP的serialize、json_encode都有了初步了解,

结合PHP、、JSON以及Ajax就可以完成强大的数据交互功能。


 

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

相关文章
  • PHP JSON 数据解析代码

    PHP JSON 数据解析代码

    2017-06-13 15:04

  • Powershell展开对象数据结构并以JSON格式输出

    Powershell展开对象数据结构并以JSON格式输出

    2017-06-13 15:00

  • Javascript Date and JSON DateTime

    Javascript Date and JSON DateTime

    2017-06-13 14:04

  • Android开发学习之路-网络编程之xml、json

    Android开发学习之路-网络编程之xml、json

    2017-06-13 13:03

网友点评