2022年01月05日整理发布:php空数组怎么转json对象

2023-08-04 23:03:00 来源:互联网

将php空数组转换为json对象的方法:1。使用“json_FORCE_OBJECT”转换json对象;2.使用数据类型转换将空数组转换为json对象;3.使用ArrayObject将空数组转换为json对象。


(资料图片)

本文操作环境:Windows7系统,PHP 7.1版DELL G3电脑

PHP json_encode将一个空数组转换为一个对象

问题:的描述

当php向客户端提供接口时,比如PC、Android ios,如果返回json格式的数据,当返回的数据是数组,关键字是字符串时,json之后会返回json对象。但是如果是空数组,可能是jsonArray的数据结构不一致,导致客户端解析JSON失败。

例如:

$arr=[

id"=123。

名字="安德鲁",

];

$ jsonRet=JSON _ encode($ arr);

print _ r($ JSonret);输出:

{

id": 123,

姓名" : "安德鲁"

}但如果是:

$ arr=[];

$ jsonRet=JSON _ encode($ arr);

print _ r($ JSonret);输出:

[

]数组为空时怎么可能是JsonObject?

方法1:

使用JSON_FORCE_OBJECT

$ arr=[];

$jsonRet=json_encode($arr,JSON _ FORCE _ OBJECT);

print _ r($ JSonret);这种方法有一个缺点,例如:

$arr=[

jsonArray"=[

"21", "12", "13"

],

jsonObject"=[]

];

$jsonRet=json_encode($arr,JSON _ FORCE _ OBJECT);

print _ r($ JSonret);输出:

{

jsonArray": {

"0": "21",

"1": "12",

"2": "13"

},

jsonObject": {

}

}原来的jsonArray也被JSON对象化了,局部的改动不能影响全局。

方法二

使用数据类型转换

$bar=数组;

$foo=(对象)$ bar

echo JSON _ encode($ foo);方法3(推荐)

使用数组对象

$arr=[

jsonArray"=[

"21", "12", "13"

],

jsonObject"=new \ArrayObject

];

$ jsonRet=JSON _ encode($ arr);

print _ r($ JSonret);输出:

{

jsonArray": [

"21",

"12",

"13"

],

jsonObject": {

}

}【推荐学习:php视频教程】以上就是PHP空数组如何转换成json对象的细节!

来源:php中文网站

标签:

Copyright ©  2015-2022 西南快报网版权所有  备案号:皖ICP备2022009963号-8   联系邮箱:39 60 29 14 2 @qq.com