文档文库
手机版
投诉建议
热门搜索:
心得体会
演讲稿
思想汇报
首页
心得体会
学习心得体会
培训心得体会
军训心得体会
社会实践
作风建设
工作心得体会
教育心得体会
演讲稿
演讲稿格式
演讲稿范文
竞聘演讲稿
师德演讲稿
三分钟演讲稿
思想汇报
思想汇报范文
转正思想汇报
大学生思想汇报
季度思想汇报
教师思想汇报
工作计划
工作计划格式
工作计划开头
工作计划结尾
总结与计划
工作计划模板
工作总结
年终工作总结
年度工作总结
个人工作总结
实习报告
实习报告范文
实习计划范文
实习鉴定范文
实习报告内容
个人简历
求职简历
简历范文
简历模板
简历表格
简历格式
祝福语
春节
除夕
元宵
端午节
合同范文
合同范本
合同样本
合同范本格式
首页
>
正在进行安全检测...
正在进行安全检测...
发布时间:2023-11-09 01:53:20 来源:
文档文库
小
中
大
字号:
手机查看
百度文库
-
让每个人平等地提升自我!
php
和
js
如何通过
json
互相传递数据
当我们在结合
php
和
javascript
实现某些功能时,经常会用到
json
。
json
是
js
的一
种数据格式,可以直接被
js
解析。而
php
无法直接读取
json
数据,但是
php
提供了
json_decode
函数来对
json
数据进行转化,从而可以被
php
脚本访问。同时,
php
也提
供了
json_encode
函数来将数据转化成
json
格式。那么,
js
中的原生
json
与
php
中通
过
json_encode
函数转化后的
json
是否完全一样呢?今天,站长就和大家一起来探讨这
个问题。
我们通过
php
向
javascript
传递数组数据时,通常要将其转化为
json
格式,以便
javascript
来获取,那么我们就以数组为例,先来看一下两者之间的区别。
1
、一维数组
考虑
php
数组
$array=array("1","2","3";
使用
json_encode
函数转化后,
对应的
json
字符串
为
["1","2","3"]
。
细心的朋友很快就发现
,
转化后得到的
json
字符串,就是
javascript
中的数组形式,那么
是否可以用
js
的数组访问方式来访问呢?
当然是可以的,但是你将这个
json
字符串传递给给
js
时,需要使用
urlencode
函数对其
编码,如:
'"id="aj">
访
问
json
我们可以用下面的
js
代码来验证:
functionshow(str{
varjobj=eval(decodeURI(str;
alert(jobj[2];
}
大家自己试一试就会发现,是的,可以用
js
中访问一维数组的方式来访问它。
eval
方法将
json
字符串解释为
json
对象,
因为传递过来的是字符串,
不转化的话,
你得到将是字符串
中第三个字符的值。
我们再来对这个一维数组做一下变化,
我们发现上面的一维数组没有指定索引,
所以它默认
为数字索引,现在我们来给它加上键名:
考虑
php
数组
$array=array('a'=>'1','b'=>'2','c'=>'3';
使用
json_encode
函数转化后,
对应的
json
字符串为
{"a":"1","b":"2","c":"3"}
。
我们很快就发现了其中的不同,最明显的就是字符串两端的
[]
变成了
{},
那么这个字符串是
1
百度文库
-
让每个人平等地提升自我!
否也可以按上面那样处理后被
js
访问呢?我们不防试一试:
urlencode(json_encode(array('a'=>'1','b'=>'2','c'=>'3';?>'"id="aj">
访问
json
functionshow(str{
varjobj=eval(decodeURI(str;
alert(jobj.a;
}
大家如果动手试了就知道,点击链接后,没有出现弹窗。为什么呢?是
PHP
生成的
json
字符串格式不对吗?不是的,这是我们在使用
eval
函数解释的时候,出错了。把上面的函
数代码换成:
functionshow(str{
varjobj=eval('('+decodeURI(str+'';
alert(jobj.a;
}
再试试吧!怎么样,可以访问了吧。这告诉我们,在使用
eval
方法处理带有键名的
json
字符串时,
需要在字符串两端加上括号。
至于为什么,站长也不知道,
站在巨人的肩膀上而
已。
这里要注意,尽管
PHP
生成的
json
字符串
{"a":"1","b":"2","c":"3"}
被传递给
js
后无法被直接解释
为
json
格式,但是如果你在
js
中使用该字符串直接创建
json
数据,是可以的。试试下面的代码吧:
varjobj={"a":"1","b":"2","c":"3"};
alert(jobj.b;
2
、二维数组
二维数组在
PHP
用的应用非常广泛,因此了解二维数组转化后的
json
格式非常重要。有
了上面的例子做铺垫,下面站长就直接给出示例代码:
'"
id="aj">
访问
json
functionshow(str{
varjobj=eval(decodeURI(str;
alert(jobj[0][0];
}
大家运行,会发现,这跟一维数组差不多,这是不带键名的例子,因此在
show
函数中,
去掉字符串两端的括号也是可以的。
2
本文来源:
https://www.2haoxitong.net/k/doc/fbcf778aecfdc8d376eeaeaad1f34693dbef10f8.html
《正在进行安全检测....doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
文档为doc格式
分享到:
相
关
案
例
历年高考新课标全国卷Ⅰ语文参考答案
2024-04-27
(楚国往事)一、绝世苍璧
2024-04-27
正在进行安全检测...
2024-04-27
正在进行安全检测...
2024-04-27
音乐节志愿者报名表自我介绍
2024-04-27
正在进行安全检测...
2024-04-27
发高中照片的朋友圈文案
2024-04-27
正在进行安全检测...
2024-04-27
正在进行安全检测...
2024-04-27
一年级 小学生课前准备规范要求
2024-04-27
相关推荐
1
正在进行安全检测...
2
安全验证
3
正在进行安全检测...
4
正在进行安全检测...
5
正在进行安全检测...
6
正在进行安全检测...
7
正在进行安全检测...
8
安全验证
9
正在进行安全检测...
10
正在进行安全检测...
推荐内容
正在进行安全检测...
正在进行安全检测...
安全验证
正在进行安全检测...
正在进行安全检测...
安全验证
正在进行安全检测...
安全验证
正在进行安全检测...
正在进行安全检测...