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 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
使用php来实现网络服务
Sep 15 PHP
PHP用GD库生成高质量的缩略图片
Mar 09 PHP
php牛逼的面试题分享
Jan 18 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
Jan 27 PHP
分享下php5类中三种数据类型的区别
Jan 26 PHP
PHP统一页面编码避免乱码问题
Apr 09 PHP
PHP格式化MYSQL返回float类型的方法
Mar 30 PHP
PHP发送AT指令实例代码
May 26 PHP
PHP通过引用传递参数用法分析
Dec 01 PHP
yii2-GridView在开发中常用的功能及技巧总结
Jan 07 PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 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
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
srcElement表格样式
2006/09/03 Javascript
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
农业大学毕业生的个人自我评价
2013/10/11 职场文书
社区庆八一活动方案
2014/02/02 职场文书
远程培训的心得体会
2014/09/01 职场文书
超市创业计划书
2014/09/15 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
python编写函数注意事项总结
2021/03/29 Python
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript