哪些使用JSON,大家用PHP生成JSON后的字符串
分类:威尼斯手机平台

网络的明日,AJAX已经不是什么样素不相识的词汇了。提及AJAX,大概会马上想起因TiguanSS而兴起的XML。XML的剖判,大概已经不是何许难点了,极度是PHP5,大批量的XML解析器的涌现,如最轻量级的SimpleXML。可是对于AJAX来讲,XML的分析更赞成于前台Javascrīpt的帮忙度。笔者想有所深入分析过XML的人,都会因树和节点而头大。不可以还是不可以认,XML是很正确的数额存款和储蓄情势,可是其灵活刚好变成了其剖析的费力。当然,这里所指的费劲,是相持于本文的主角--JSON来讲。 JSON为什么物?小编就不另行概念了。通俗的说,它是一种多少的仓库储存格式,就像PHP体系化后的字符串相符。它是一种多少描述。譬喻大家将一个数组类别化后贮存,就能够十分轻便的反体系化后选拔。JSON也是那样,只不过他搭建的是客商端Javascrīpt和服务端PHP的互相桥梁。大家用PHP生成JSON后的字符串,然后把这些字符串传给前台Javascrīpt,Javascirpt就能够比较轻便的将其反JSON然后使用。说通俗点,它实在很像数组。 闲话少说,如何行使JSON。PHP5.2带头内置了JSON的支撑。当然,如若低于这几个本子的话,那么市道上有比比较多PHP版本的贯彻,随意下一个用就OK啦。以后最首如果说说PHP内置帮忙的JSON。十分轻易,四个函数:json_encode和json_decode。一个编码,四个解码。先看看编码的行使:

PHP中JSON的利用措施

?php$arr = array( ''name'' = ''陈毅鑫'', ''nick'' = ''深空'', ''contact'' = array( ''email'' = ''shenkong at qq dot com'', ''website'' = '''', ));$json_string = json_encode($arr);echo $json_string;? 很简短的将二个数组JSON了。供给提出的是,在非UTF-8编码下,中文字符将不得被encode,结果会出去空值,所以,借使您使用gb2312编写PHP代码,那么就须要将含有汉语的从头到尾的经过使用iconv只怕mb转为UTF-8再张开json_encode,上边输出结果如下:

什么样使用JSON。PHP5.2开首内置了JSON的支撑。当然,借使低于那一个本子的话,那么市道上有众多PHP版本的兑现,随意下一个用就OK啦。现在根本是说说PHP内置支持的JSON。很简短,四个函数:json_encode和json_decode(跟连串化很像啊)。 一个编码,四个解码。先看看编码的利用:

{name:u9648u6bc5u946b,nick:u6df1u7a7a,contact:{email:shenkong at qq dot com,website:}} 笔者都说了和种类化很像,你还不相信。编码后就要解码,PHP提供了相应的函数json_decode,json_decode实践后,将会赢得叁个指标,操作如下:

<?php教程
$arr = array(
'name' => '陈毅鑫',
'nick' => '深空',
'contact' => array(
'email' => 'shenkong at qq dot com',
'website' => '',
)
);
$json_string = json_encode($arr);
echo $json_string;
?>
很简短的将四个数组JSON了。须要提出的是,在非UTF-8编码下,汉语字符将不得被encode,结果会出来空值,所以,即使您使用 gb2312编纂PHP代码,那么就必要将包括普通话的内容使用iconv或者mb转为UTF-8再进行json_encode,上面输出结果如下:

?php$arr = array( ''name'' = ''陈毅鑫'', ''nick'' = ''深空'', ''contact'' = array( ''email'' = ''shenkong at qq dot com'', ''website'' = '''', ));$json_string = json_encode($arr);$obj = json_decode($json_string);print_r($obj卡塔尔国;? 访谈对象内的性质会呢?$obj-name,那样子的,当然,也足以把它转位数组,方便调用啦:

{"name":"u9648u6bc5u946b","nick":"u6df1u7a7a","contact":{"email":"shenkong at qq dot com","website":"
本身都在说了和系列化很像,你还不信。编码后将要解码,PHP提供了相应的函数json_decode,json_decode试行后,将会得到贰个对象,操作如下:

$json_string = json_encode($arr);$obj = json_decode($json_string);$arr = (array) $obj;print_r($arrState of Qatar; PHP转来转去的用项不是专程大,除了缓存生成,感觉还不比直接存数组呢,可是,

<?php
$arr = array(
'name' => '陈毅鑫',
'nick' => '深空',
'contact' => array(
'email' => 'shenkong at qq dot com',
'website' => '',
)
);
$json_string = json_encode($arr);
$obj = json_decode($json_string);
print_r($obj);
?>
做客对象内的性情会吗?$obj->name,那样子的,当然,也得以把它转位数组,方便调用啦:

<

$json_string = json_encode($arr);
$obj = json_decode($json_string);
$arr = (array) $obj;
print_r($arr);
PHP转来转去的用项不是专程大,除了缓存生成,以为还不及直接存数组呢,可是,当您和前台交互作用的时候,它的功用就出来咯,上面看看自家怎么用Javascript来利用这段字符:

<script type="text/网页特效">
var arr = {"name":"u9648u6bc5u946b","nick":"u6df1u7a7a","contact":{"email":"shenkong at qq dot com","website":";
alert(arr.name)
</script>
地方中,直接将这些字符串赋给贰个变量,它就改为三个Javascript数组了(专门的学问化术语应该不叫数组,然而鉴于PHP的习于旧贯难点,笔者就 一向叫数组好了,方便驾驭)。那样,能够很方便的对arr实行遍历也许随便做你想做的政工了。写到这里,好像都没提到AJAX哦?是啊,联想一下,假设服 务端重回的responseText用JSON过的字符串代替XML的话,前台Javascript管理起来是或不是很有利呢?狗皮膏药正是那般用的。
实际写到这里,除了数量的囤积格式不太相符外,JSON和XML也没怎么太大差异哦,可是上面笔者说的少数。固然和XML没多大关系,不过, 能够表明JSON更加大面积的采纳,那就是,跨域的多少调用。由于安全性难点,AJAX不扶持跨域调用,那样要调用分裂域名下的数目,很麻烦哦,纵然有化解方案(stone在她的讲座上涉及过了代理啊什么的即使听不懂可是知道能一蹴即至)。作者写七个文件,足以展示跨域调用了。
主调文件index.html
<script type="text/javascript">
function getProfile(str) {
var arr = str;
document.getElementById('nick').innerHTML = arr.nick;
}
</script>
<body><div id="nick"></div></body>
<script type="text/javascript" src="/demo/profile.php"></script>
威尼斯手机平台,被调文件profile.php
<?php
$arr = array(
'name' => '陈毅鑫',
'nick' => '深空',
'contact' => array(
'email' => 'shenkong at qq dot com',
'website' => '',
)
);
$json_string = json_encode($arr);
echo "getProfile($json_string)";
?>

本文由威尼斯在线注册平台发布于威尼斯手机平台,转载请注明出处:哪些使用JSON,大家用PHP生成JSON后的字符串

上一篇:php批量上传五[带预览] 下一篇:PHP在本机同时支持FTP和HTTP上传,可以应用的上传方式有PUT
猜你喜欢
热门排行
精彩图文