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


Posted in PHP onSeptember 08, 2012

先看一个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跨域调用。
PHP 相关文章推荐
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
apache配置虚拟主机的方法详解
Jun 17 PHP
Zend Framework页面缓存实例
Jun 25 PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 PHP
php实现图片添加描边字和马赛克的方法
Dec 10 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
php支付宝在线支付接口开发教程
Sep 19 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
PHP延迟静态绑定的深入讲解
Apr 02 PHP
php+Ajax无刷新验证用户名操作实例详解
Mar 04 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
May 29 PHP
header跳转和include包含问题详解
Sep 08 #PHP
php比较多维数组中值的大小排序实现代码
Sep 08 #PHP
JSON在PHP中的应用介绍
Sep 08 #PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
Sep 07 #PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
Sep 07 #PHP
用C/C++扩展你的PHP 为你的php增加功能
Sep 06 #PHP
初步介绍PHP扩展开发经验分享
Sep 06 #PHP
You might like
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
简单的通用表达式求10乘阶示例
2014/03/03 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
python自动下载图片的方法示例
2020/03/25 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
python 代码运行时间获取方式详解
2020/09/18 Python
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
大学校园毕业自我鉴定
2014/01/15 职场文书
出国签证在职证明
2014/01/16 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
求职信名称怎么写
2014/05/26 职场文书
合同意向书范本
2014/07/30 职场文书
村创先争优活动总结
2014/08/28 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
如何解决php-fpm启动不了问题
2021/11/17 PHP