PHP json_encode 空对象和空数组处理
作者:王九蛋
此前在给客户端或者前端等提供接口的时候曾遇到php空数组转换json字符串为'[]'导致数据结构不一致解析出错的问题,这个问题PHP官方文档给出解决方案,使用JSON_FORCE_OBJECT,但一旦遇到多维索引数组的情况此时会将索引数组无形中转换成关联数组,eg:$arr=["非空"=>['我快乐','我不快乐','我快不快乐'],"空"=>[]];$json
此前在给客户端或者前端等提供接口的时候曾遇到php空数组转换json字符串为'[]'导致数据结构不一致解析出错的问题,这个问题PHP官方文档给出解决方案,使用JSON_FORCE_OBJECT,但一旦遇到多维索引数组的情况此时会将索引数组无形中转换成关联数组,eg:
$arr = [
"非空"=>[
'我快乐', '我不快乐', '我快不快乐'
],
"空"=>[]
];
$json_obj = json_encode($arr,JSON_FORCE_OBJECT);
print_r($json_obj);
{
"非空": {
"0": "我快乐",#此时会将索引数组无形中转换成关联数组
"1": "我不快乐",
"2": "我快不快乐"
},
"空": {}
}
所以使用的时候还是需要注意,这个问题最好的解决方式便是通过强制类型转换去处理。
$arr = [
"非空"=>[
'我快乐', '我不快乐', '我快不快乐'
],
"空"=>[]
];
$arr = (object)$arr;
$json_obj = json_encode($arr);
print_r($json_obj);
{
"非空": ["我快乐", "我不快乐", "我快不快乐"],
"空": []
}
https://blog.csdn.net/qq_21119513/article/details/80577436
有用 | 无用猜你喜欢
您可能感兴趣的文章:
- vue 自定义单选和多选组件
- Vue 递归组件 属性组件无限级
- 测试
- web前端开发之网页制作流程
- mac 电脑使用vue-cli命令
- PHP strip_tags() 函数去掉字符串中的 HTML 标签
- PHP 是什么?
- mac 10.15 /bin/zsh zsh: fork failed: resource temporarily unavailable
- 利用lrz.bundle.js实现图片压缩上传
- php 数组 Notice: Array to string conversion
- curl或file_get_contents提示failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request
- Nginx基本属性配置详解
- vue实现数组上移下移置顶置底
- Error: Record 555612 excessed the excel length limitation of cell
- element el-tree 自定义表格
- git 查看本地仓库路径
- Python Warning: Data truncated for column
- elementUI tree组件获取当前选择所有选中(check)和半选中(indeterminate)的节点
- MYSQL中TRUNCATE和DELETE的区别