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 相关文章推荐
初探PHP5
Oct 09 PHP
php获取从百度搜索进入网站的关键词的详细代码
Jan 08 PHP
Yii调试SQL的常用方法
Jul 09 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
PHP通过API获取手机号码归属地
May 28 PHP
详解PHP执行定时任务的实现思路
Dec 21 PHP
PHP引用的调用方法分析
Apr 25 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 PHP
php支付宝APP支付功能
Jul 29 PHP
tp5框架无刷新分页实现方法分析
Sep 26 PHP
PHP7 安装event扩展的实现方法
Oct 08 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
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
javascript中json基础知识详解
2017/01/19 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
详解React 16 中的异常处理
2017/07/28 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
vue中$nextTick的用法讲解
2019/01/17 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
Python实例之wxpython中Frame使用方法
2014/06/09 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
python实现AES加密解密
2019/03/28 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
斯福泰克软件测试面试题
2015/02/16 面试题
英语师范专业毕业生自荐信
2013/09/21 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
外联部演讲稿
2014/05/24 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
MySQL慢查询的坑
2021/04/28 MySQL