将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