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

简介:

                                                                           

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




     本文转自phpervip 51CTO博客,原文链接:http://blog.51cto.com/phpervip/1880654,如需转载请自行联系原作者




相关文章
|
6月前
|
存储 消息中间件 人工智能
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
220 11
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
|
8月前
|
JavaScript 前端开发 开发者
讲述Vue框架中用于对象响应式变化的Object.defineProperty函数。
综上所述,Vue.js通过 `Object.defineProperty()`提供了强大的响应式能力,使得状态管理变得简洁高效。这种能力是Vue.js受到广大开发者青睐的重要原因之一。尽管Vue 3.x使用Proxy替代了该方法,但对于Vue 2.x及其之前版本,`Object.defineProperty()`是理解Vue.js内部工作机制不可或缺的一部分。
261 27
|
9月前
|
JSON IDE Java
鸿蒙开发:json转对象插件回来了
首先,我重新编译了插件,进行了上传,大家可以下载最新的安装包进行体验了,还是和以前一样,提供了在线版和IDE插件版,两个选择,最新的版本,除了升级了版本,兼容了最新的DevEco Studio ,还做了一层优化,就是针对嵌套对象和属性的生成,使用方式呢,一年前的文章中有过详细的概述,这里呢也简单介绍一下。
304 4
鸿蒙开发:json转对象插件回来了
|
安全 Java
Object取值转java对象
通过本文的介绍,我们了解了几种将 `Object`类型转换为Java对象的方法,包括强制类型转换、使用 `instanceof`检查类型和泛型方法等。此外,还探讨了在集合、反射和序列化等常见场景中的应用。掌握这些方法和技巧,有助于编写更健壮和类型安全的Java代码。
809 17
|
前端开发 数据处理
对象数据的读取,看这一篇就够了!Object.keys()、Object.values()和Object.entries()用法详解;如何获取对象原型链上的属性
Object.keys()、Object.values()和Object.entries()都是利于对象操作的便捷方法,能有效提升数据处理的效率。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
ES6中map对象的使用,确实比Object好使哈
ES6中Map对象的使用优势,包括任意类型作为键、直接获取大小、增删查改操作等。Map的键可以是函数、对象、NaN等,支持forEach循环和for...of循环。
206 1
ES6中map对象的使用,确实比Object好使哈
|
JSON 前端开发 JavaScript
json字符串如何转为list对象?
json字符串如何转为list对象?
2158 7
|
Python
通过 type 和 object 之间的关联,进一步分析类型对象
通过 type 和 object 之间的关联,进一步分析类型对象
327 3
|
JSON JavaScript 前端开发
js如何格式化一个JSON对象?
js如何格式化一个JSON对象?
615 3
|
JSON 前端开发 中间件
React读取properties配置文件转化为json对象并使用在url地址中
本文介绍了如何在React项目中读取properties配置文件,将其内容转化为JSON对象,并在请求URL地址时使用这些配置。文章详细说明了异步读取文件、处理字符串转换为JSON对象的过程,并提供了一个封装函数,用于在发起请求前动态生成配置化的URL地址。
472 1