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性能优化准备篇图解PEAR安装
Dec 05 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
Jun 20 PHP
php防注入及开发安全详细解析
Aug 09 PHP
简单的php缓存类分享     php缓存机制
Jan 22 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
Feb 13 PHP
php获取域名的google收录示例
Mar 24 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
PHP的命令行命令使用指南
Aug 18 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 PHP
php基于curl实现的股票信息查询类实例
Nov 11 PHP
php获取指定数量随机字符串的方法
Feb 06 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
建立动态的WML站点(三)
2006/10/09 PHP
php修改时间格式的代码
2011/05/29 PHP
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
angularjs基础教程
2014/12/25 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
nodejs实现获取本地文件夹下图片信息功能示例
2019/06/22 NodeJs
IDEA安装vue插件图文详解
2019/09/26 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
Python中is与==判断的区别
2017/03/28 Python
Python3 模块、包调用&amp;路径详解
2017/10/25 Python
python中退出多层循环的方法
2018/11/27 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
python和mysql交互操作实例详解【基于pymysql库】
2019/06/04 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
初中同学聚会感言
2014/02/11 职场文书
《梅兰芳学艺》教学反思
2014/02/24 职场文书
保密普查工作实施方案
2014/02/25 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
困难补助申请报告
2015/05/19 职场文书
红色故事汇观后感
2015/06/18 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
php 原生分页
2021/04/01 PHP
Window server中安装Redis的超详细教程
2021/11/17 Redis