PHP使用JSON并将JSON减为数组。

PHP使用JSON并将JSON减为数组。
在我写了一个PHP返回JSON数据的简单例子之前,我刚刚上网,突然发现了一篇文章,还介绍了JSON。内容很详细值得参考,内容如下

从5.2版,php原生提供json_encode()和()函数,json_decode进行编码和解码后。

一、json_encode()

复制代码代码如下所示:

< PHP

$ ARR =阵列(A =>1,B =>2,C = > 3,会= > 4,e = > 5);

回声json_encode($ ARR);

>
输出

复制代码代码如下所示:

{A:1,B:2,C:3,d:4,E:5 }
看一个对象转换的例子。

复制代码代码如下所示:

$ obj ->身体=还有一只后;

obj -> ID = 21美元;

$ obj ->批准=真;

obj -> favorite_count = 1美元;

$ obj ->状态= null;

回声json_encode($ obj);
输出

{代码}

{

身体:另一个职位

id:21,

批准:正确

favorite_count :1,

状态:null

}

{代码}

由于JSON只接受字符编码UTF-8,json_encode()的参数必须是UTF-8编码,否则空字符或空将得到的。这一点需要注意的是当使用GB2312中文,或当外语使用ISO-8859-1编码。

索引数组和关联数组

PHP支持两种数组,一种是只存储索引数组(索引数组)的值(value),另一种是保存关联的数组(关联数组)的name值对(name value)。

因为Javascript不支持关联数组,json_encode()将索引数组(数组索引数组)格式,并将相关的数组(数组)为对象的格式。

例如,现在有一系列索引。

复制代码代码如下所示:

$ ARR =阵列(一,两,三);

json_encode回波($ ARR);
输出

复制代码代码如下所示:

{一
如果将其更改为关联数组,

复制代码代码如下所示:

(1美元=数组arr =>1,2= >,3>=);

json_encode回波($ ARR);
输出的变化

复制代码代码如下所示:

{1 :
请注意,从{(数组)到{}(对象)的数据格式。

如果需要将索引数组强制放入对象

复制代码代码如下所示:

json_encode(((对象)$ ARR);
也许

复制代码代码如下所示:

json_encode($ ARR,json_force_object);
三,类(类)的转换

下面是PHP的一类:

复制代码代码如下所示:

类Foo {

const error_code = '404;

公共public_ex美元=这是公共的;

这是私人的私人private_ex美元=!

保护protected_ex美元=这应该被保护的;

公共功能geterrorcode(){

回归自我::error_code;

}

}
现在,这个类的实例是JSON转换的:

复制代码代码如下所示:

新富;

foo_json = json_encode美元($ Foo);

echo $ foo_json;
输出结果是

复制代码代码如下所示:

{public_ex :这是公共}
如您所见,除了公共变量(public)之外,其他参数(常量、私有变量、方法等)也会丢失。

四、json_decode()

此函数用于将JSON文本转换为相应的PHP数据结构:

复制代码代码如下所示:

12345}{ { };

obj = json_decode美元($ JSON);

打印$ obj -> { 'foo / / 12345};
通常,json_decode()总是返回一个PHP对象,而不是一个数组。例如:

复制代码代码如下所示:

12、C、3、D、4、5;

var_dump(json_decode($ JSON));
其结果是生成一个PHP对象:

复制代码代码如下所示:

(# stdClass对象)1(5){

{A} = int(1)

{b} = int(2)

{C} = int(3)

{d} = int(4)

{e} = int(5)

}
如果你想强迫一个PHP数组,json_decode()需要添加一个参数真实:

复制代码代码如下所示:

12、C、3、D、4、5;

var_dump(json_decode($ JSON,真));
结果,生成了一个关联数组:

复制代码代码如下所示:

数组(5){

{A} = int(1)

{b} = int(2)

{C} = int(3)

{d} = int(4)

{e} = int(5)

}
五个常见的错误,json_decode()

下面的三种JSON书写都是错误的,你能看到错误在哪里吗

复制代码代码如下所示:

bad_json美元={ 'bar:'baz};

bad_json美元=巴兹}的{酒吧;

bad_json美元{ =棒:巴兹
执行json_decode()()这三个字符串,将返回null,犯了一个错误。

第一个错误是,JSON分离器(分隔符)只允许使用双引号和单引号不能使用。第二误差是名字的名字对JSON(在左半结肠结肠的一部分)在任何情况下必须使用双引号。第三错误这是最后的值不能加逗号(尾逗号)。

此外,JSON只能用来表示对象(对象)和数组(数组),如果json_decode()用于字符串或价值,它将返回null。

复制代码代码如下所示:

var_dump(json_decode(Hello World)); / /空

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部