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 网页过期时间的控制代码
Jun 29 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
Aug 05 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
关于zend studio 出现乱码问题的总结
Jun 23 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
php中的curl_multi系列函数使用例子
Jul 29 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
PHP SplObjectStorage使用实例
May 12 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
详解PHP中curl_multi并发的实现
Jun 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
Session的工作方式
2006/10/09 PHP
PHP 超链接 抓取实现代码
2009/06/29 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
javascript some()函数用法详解
2014/11/13 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
JS解析XML的实现代码
2009/11/12 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
在微信小程序中使用vant的方法
2019/06/07 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
将python代码和注释分离的方法
2018/04/21 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
Python魔术方法专题
2020/06/19 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
学习新党章思想汇报
2014/01/09 职场文书
机械工程学院大学生求职信
2014/05/25 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
男方婚礼答谢词
2015/01/20 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js