分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

json_encode($b, JSON_FORCE_OBJECT) 可以强制转换成对象

发布时间:2023-09-06 02:34责任编辑:彭小芳关键词:jsjson

最近在为移动端的项目提供接口,数据格式都为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。

json_encode($b, JSON_FORCE_OBJECT) 可以强制转换成对象

原文地址:https://www.cnblogs.com/opensmarty/p/10455490.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved