PHP json格式和js json格式 js跨域调用实现代码

2015-01-24信息快讯网

整理一个json格式的例子,以及php json格式与js json之间的调用(传说中的js跨域调用)

先看一个js函数
 
function jsontest() 
{ 
var json = [{'username':'crystal','userage':'20'},{'username':'candy','userage':'24'}]; 
alert(json[1].username); 

var json2 = [['crystal','20'],['candy','24']]; 
alert(json2[0][0]); 
} 

这个函数,第一个alert(json[1].username); 会提示 “candy”。 json 变量是一个数组对象。所以要采用 obj.username 这样的格式来调用。
第二个 alert(json2[0][0]); 会提示 “crystal”。 json2变量是完全的一个json格式。 json和json2变量都达到了相同的效果,但json2明显要比json精简了很多。
这是 JavaScript 的json 格式。
下面我们来看看php中的json格式。
还是先看一段代码
 
$arr = array ( 
array ( 
'catid' => '4', 
'catname' => '程程', 
'meta_title' => '程程博客' 
), 

array ( 
'catid' => '6', 
'catname' => 'climber', 
'meta_title' => '攀登者', 
) 
); 
$jsonstr = json_encode($arr); 
echo $jsonstr; 


这段代码中,$arr是一个数组,我们采用 json_encode 将$arr 转换为了 json 格式 。
这段代码会输出:

[{"catid":"4","catname":"\u7a0b\u7a0b","meta_title":"\u7a0b\u7a0b\u535a\u5ba2"},{"catid":"6","catname":"climber","meta_title":"\u6500\u767b\u8005"}]
这就是php对于json数据的处理。
对于json数据,php 也可以采用 json_decode()函数将json数据转换成 数组 。
比如 上述代码中,我们采用json_decode函数处理下。又会打印出 上面的数组。
$jsonstr = json_encode($arr);
$jsonstr = json_decode($jsonstr);
print_r($jsonstr);
接下来,我们看看,php json数据和 js json数据如何相互调用。

我们新建一个 php_json.php 文件

代码如下:
 
$arr = array ( 
array ( 
'catid' => '4', 
'catname' => '程程', 
'meta_title' => '程程博客' 
), 

array ( 
'catid' => '6', 
'catname' => 'climber', 
'meta_title' => '攀登者', 
) 
); 
$jsonstr = json_encode($arr); 
-----下面写在php区间之外----- 
var jsonstr=< ? = $jsonstr ? >; 

PS:在php_json.php文件末尾 var jsonstr=< ? = $jsonstr ? >; 这一句。 这是将json格式的数据赋值给 jsonstr 变量。
我们再建立一个 json.html 文件

代码如下:
 
<SCRIPT type=text/javascript src="php_json.php"></SCRIPT><SCRIPT language=javascript type=text/javascript> 
function loadjson(_json) 
{ 
if(_json) 
{ 
for(var i=0;i<_json.length;i++) 
{ 
alert(_json[i].catname); 
} 
} 
} 

loadjson(jsonstr) 
</SCRIPT> 

这样,我们在查看 json.html的时候,loadjson(jsonstr) 就会 提示 “程程”和“climber”
这样也实现了js跨域调用。
解析如何去掉CodeIgniter URL中的index.php
解析php入库和出库
解析php下载远程图片函数 可伪造来路
解析php通过cookies获取远程网页的指定代码
使用dump函数,给php加断点测试
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
解析PHP中的file_get_contents获取远程页面乱码的问题
深入file_get_contents函数抓取内容失败的原因分析
关于PHP session 存储方式的详细介绍
基于php使用memcache存储session的详解
解析Extjs与php数据交互(增删查改)
深入extjs与php参数交互的详解
关于js与php互相传值的介绍
php 备份数据库代码(生成word,excel,json,xml,sql)
浅析php中jsonp的跨域实例
用Json实现PHP与JavaScript间数据交换的方法详解
PHP在不同页面间传递Json数据示例代码
探讨PHP JSON中文乱码的解决方法详解
php中将汉字转换成拼音的函数代码
header跳转和include包含问题详解
php比较多维数组中值的大小排序实现代码
JSON在PHP中的应用介绍
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
巧用php中的array_filter()函数去掉多维空值的代码分享
用C/C++扩展你的PHP 为你的php增加功能
PHP连接MongoDB示例代码
无JS,完全php面向过程数据分页实现代码
简单的方法让你的后台登录更加安全(php中加session验证)
php学习之function的用法
PHP中防止直接访问或查看或下载config.php文件的方法
php中json_decode()和json_encode()的使用方法
JS中encodeURIComponent函数用php解码的代码
php操作JSON格式数据的实现代码
使用JSON实现数据的跨域传输的php代码
PHP学习散记_编码(json_encode 中文不显示)
©2014-2024 dbsqp.com