json_encode($b, JSON_FORCE_OBJECT) 可以强制转换成对象
admin
2023-08-02 07:06:33
0

      

                                                                          

最近在为移动端的项目提供接口,数据格式都为json,不过在过程中遇到一个小问题,代码如下:
情况一:
$tmp = array('a','b','c');
echo json_encode($tmp);
输出结果:['a','b','c']

情况二:
$tmp = array('a'=>'a','b'=>'b','c'=>'c');
echo json_encode($tmp);
输出结果:{'a':'a','b':'b','c':'c'}

问题出来了:
在二中,如果$tmp 可能为空的情况下,json_encode 后 输出的结果将是[]空数组
那么,这个接口在提供数据时就必须得分两种情况来考虑了:
数组为空时,接口输出的是空数组;
数组不为空时,接口输出的对象
解决方案:json_encode($tmp, JSON_FORCE_OBJECT)   不管在什么情况,接口永远输出对象,空数据及为{}


其实还有一个问题不知道原因:
在一,二两种情况中,为什么一种json_encode之后出来的是数组[],而二中出来的是对象{}
答案:
非连续的索引数组,在json_encode时都会被编码为object
这句话这么描述好像有些不妥

索引数组本来就是连贯的,应该是除了索引数组,其他数组(关联数组,多维数组)都会被编码为object。


相关内容

热门资讯

萍乡小程序制作 这是(SEO151220)整理的信息,希望能帮助到大家 萍乡小程序制作 随着移动互联网的普及,小程序...
华研精机获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示华研精机(301138)新获得一项实用新型专利授权,专利名为“...
2026 年上海对讲机厂家怎么... 2026 年上海对讲机行业现状与核心痛点 近年来,随着安全生产法规的日益严格以及商业运营对通讯效率要...
2026年质量好的TPU手机壳... 在消费电子市场,手机品类迭代速度不断加快,消费者对手机壳的质感、贴合度、功能性要求也持续提升,TPU...
充电速度为何重要购车决策要关注... 在当今的汽车市场中,新能源汽车的普及程度越来越高,而充电速度成为了影响消费者购车决策的重要因素之一。...
台风巴威来袭,上海黄浦江沿岸风... 中央气象台最新预报显示,台风巴威将于7月12日凌晨在浙江三门至苍南一带沿海登陆。根据台风态势及走向,...
原创 全... 现在的宽带,真的是普及了,截止至2025年度,中国宽带用户已经高达6.91亿。 而6.91亿户宽带,...
原创 熟... 缺电缺疯了的印度,又盯上了4家中国电力企业! 印度财政部最近发文,把4家中国企业拉进了白名单,准许它...
国际会议时间变了,“过去迁就美... (文/观察者网 留白) 本周,联合国在瑞士日内瓦举行多场人工智能(AI)相关国际会议,来自190多个...
频繁跳闸是怎么回事 频繁跳闸可能由多种原因引起,以下是一些常见的原因:1. 过载:当电路中的电器设备功率超过电路的承载能...