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 和 XML: 使用expat函数(一)
Oct 09 PHP
笑谈配置,使用Smarty技术
Jan 04 PHP
精通php的十大要点(上)
Feb 04 PHP
php实现把数组按指定的个数分隔
Feb 17 PHP
PHP实现批量修改文件后缀名的方法
Jul 30 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 PHP
初识ThinkPHP控制器
Apr 07 PHP
yii2缓存Caching基本用法示例
Jul 18 PHP
PHP表单验证内容是否为空的实现代码
Nov 14 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
Apr 04 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 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中simplexml_load_string函数使用说明
2011/01/01 PHP
php array_unique之后json_encode需要注意
2011/01/02 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
javascript中this的四种用法
2015/05/11 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
javascript对HTML字符转义与反转义
2018/12/13 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
python检测lvs real server状态
2014/01/22 Python
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
详细分析Python垃圾回收机制
2020/07/01 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
公司周年庆典邀请函
2014/01/12 职场文书
继承公证书
2014/04/09 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL