手机版

JSON用法将PHP数组转换为JS数组 以及JS如何接收PHP数组

时间:2021-10-01 来源:互联网 编辑:宝哥软件园 浏览:

首先下载以下文件(这是别人专门为了分析json写的一段代码),然后导入这个文件!

http://pan.baidu.com/s/1dD8qVr7

现在,当我们需要使用ajax与后台交互时,如何将php数组转移到js文件中,并通过js进行识别?

首先看看php文件,当我们得到$arr数组时。

foreach ($arr为$value) { $json。=json_encode($value)。',';}回显“[”。substr($json,0,strlen($json) - 1)。']';Json_encode()就是对$arr的每个值进行Json编码,然后我们要输出一个json数组,所以我们会在每个编译后的值后面加一个逗号,最后在所有值外面加“[]”,这就是json数组的格式。请注意,因为我们在json编码每个值后添加了一个逗号,所以当所有值合并到数组中时,它将导致一个额外的逗号,因此我们必须使用substr。

然后让我们看看js文件。

当我们使用arr接收php文件传输的json数组时,

var JSON=JSON . parse(arr);Json是我们开始下载的文件中定义的一个对象。我们用它的解析方法把jsON数组转换成JS数组!这是变量json,它接收一个json数组,所以不能直接打印。可以遍历这个JSON数组或者json[0]来输出!

其实说白了,把php数组转换成js数组的思路就是用json作为中间量!当然,你只能用php和js来实现数组转换。方法不止一个!

PHP数组和Json之间的转换。

很多时候,使用JSon是因为使用ajax对象时程序和Js函数之间的数据交互。因为JS不知道PHP中的数组,所以PHP不知道JS中的数组或对象。Json很好地解决了这个问题。

Json简介

JSON是一种轻量级的数据交换格式。它基于JavaScript的一个子集,这意味着JavaScript可以直接读取Json,非常方便。

Json的具体形式是:

1.对象。

对象是“名称/值对”的无序集合。对象以“{”(左括号)开头,以“}”(右括号)结尾。每个“名称”后面跟着一个“:”(冒号);“名称/值对”由“,”(逗号)分隔。

示例:{“用户名”:“埃里克”,“年龄”:23,“性别”:“男人”}

代码示例:

脚本类型='text/javascript '函数getUser(){ var user={ ' username ' : ' Eric ',' age':23,' family ' : { ' mother ' : ' Marry ','父亲' :'Alon ',' brother ' : ' Tom ' } }alert(user . username);alert(user . age);alert(user . family . brother);} GetUser();/script2,数组。

数组是有序的值集合。数组以“[”(左括号)开头,以“]”(右括号)结尾。这些值由“,”(逗号)分隔。

例子:['埃里克',23岁,'男人']

示例:

脚本类型='text/javascript '函数getArray() { var arr=['Jarry ',23,['www.xiaophper.com ','[email protected]'];警报(arr[0]);警报(arr[1]);警报(arr[2][0]);警报(arr[2][1]);} GetArray();/script注意:在JS中对象和数组的调用是不同的。对象用“.”调用、和数组用下标[0]和[1]调用。还要注意,在传递Json字符串时,字符串值应该用引号括起来。

在PHP中将数组转换成Json。

强大的PHP已经提供了内置函数:json_encode()和json_decode()。很容易理解,json_encode()就是把PHP数组转换成json。相反,json_decode()是将json转换成PHP数组。

例如:

$array=array('name'='Eric ',' age '=23);echo JSON _ encode($ array);程序将打印出:

复制的代码如下: {“姓名”:“埃里克”,“年龄”:23}

请看下面的例子:

$array=array(0='Eric ',1=23);echo JSON _ encode($ array);程序将打印出:['埃里克',23]。

从上面两个例子可以看出,如果PHP数组的键都是数字,那么json_encode()以数组的形式返回json,如果PHP数组的键都是字符串。那么json_encode()将把json作为一个对象返回。刚刚有人说过。它们在js中有不同的称呼。

事实上,只要PHP数组中有一个字符串形式的键,json_encode()就会以对象的形式返回json。这是不正确的。因为,PHP代码虽然不会有错误,但是如果这样的JSon传递给JS函数,Js会把这个Json当成一个对象,一个对象是不可能把数字当成属性名的。也就是说,JS不知道它是什么:user.0.username(中间数字为零)。

版权声明:JSON用法将PHP数组转换为JS数组 以及JS如何接收PHP数组是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。