php空数组怎么转json对象

php空数组转json对象的方法:1、使用“JSON_FORCE_OBJECT”转json对象;2、使用数据类型转换将空数组转json对象;3、使用ArrayObject将空数组转json对象。

php空数组怎么转json对象

本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑

PHP json_encode转换空数组为对象

问题描述:

php在给端提供接口,比如PC和安卓,ios等,如果返回json格式的数据,当返回数据的为数组,且key为字符串时,json化后将返回jsonObject,但是如果是空数组,有可能返回的就是jsonArray,数据结构不一致导致端解析json失败。

立即学习“PHP免费学习笔记(深入)”;

如:

$arr  = [     'id'  => 123.,     'name'  =>  'andrew' ,]; $jsonRet  = json_encode( $arr ); print_r( $jsonRet );

登录后复制

输出:

{  "id": 123,  "name": "andrew"}

登录后复制

但是如果是:

$arr = [];$jsonRet = json_encode($arr);print_r($jsonRet);

登录后复制

输出:

[  ]

登录后复制

如何在数组为空时也是JsonObject呢?

方法一:

使用JSON_FORCE_OBJECT

$arr = [];$jsonRet = json_encode($arr, JSON_FORCE_OBJECT);print_r($jsonRet);

登录后复制

此法有一弊端,eg:

$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的也被jsonObject化了,局部的改变不能影响全局

方法二

使用数据类型转换

$bar = array();  $foo = (object)$bar;  echo json_encode($foo);

登录后复制

方法三(推荐)

使用 ArrayObject

$arr = [    'jsonArray' => [        '21', '12', '13'    ],    'jsonObject' => new ArrayObject()];$jsonRet = json_encode($arr);print_r($jsonRet);

登录后复制

输出:

{  "jsonArray": [    "21",    "12",    "13"  ],  "jsonObject": {      }}

登录后复制

【推荐学习:PHP视频教程】

以上就是php空数组怎么转json对象的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2517006.html

(0)
上一篇 2025年3月5日 15:58:32
下一篇 2025年3月5日 15:58:40

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php怎么去除html代码

    php去除html代码的方法:1、通过“strip_tags(string,allow)”去除HTML的标签;2、使用PHP处理从数据库中读取的文章HTML代码,然后用正则对代码进行匹配与修改即可。 本文操作环境:Windows7系统、PH…

    2025年3月5日
    000
  • php如何将字符串转utf8格式

    方法:1、使用iconv函数,语法“iconv(原字符类型, ‘UTF-8’, 字符串)”;2、使用mb_convert_encoding函数,语法“mb_convert_encoding(字符串, ‘U…

    2025年3月5日
    200
  • linux如何更改php版本号

    linux更改php版本号的方法:首先使用“find”命令找到php各版本所在位置;然后使用“ln”命令创建一个包含新php版本路径的软连接;最后使用“export”命令将软连接加到PATH路径中即可。 本文操作环境:centos7系统、P…

    2025年3月5日
    200
  • php地域时间怎么去设置

    php地域时间的设置方法:1、使用“date_default_timezone_set”函数,语法“date_default_timezone_set(“地区”)“;2、打开php.ini文件,找到并修改“date.…

    2025年3月5日
    200
  • ecs如何安装配置php环境

    配置方法:1、使用Xshell连接ECS服务器;2、执行“yum install httpd”命令;3、配置yum源;4、使用“yum install”命令安装并配置PHP5.6;5、使用“yum install”命令安装并配置mysql。…

    2025年3月5日 编程技术
    200
  • php如何使用Aes进行加密

    php可以查看用户的标识判断用户是否登录,但是此标识可以修改,修改之后就可以获取到修改的用户所有信息,因此我们需要对值进行加密。下面就跟着小编一起去看看如何使用Aes进行加密。 在项目中,尤其是pc端的时候,我们在用户登录后会给前端返回一个…

    2025年3月5日 编程技术
    200
  • php提示Array怎么办

    本文将讲解数组当成了字符串使用,php提示array to string conversion的两种解决方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 第一种 这种场景比较少,大多数都是新手才会犯,也很容易发现解决错…

    2025年3月5日
    200
  • php如何压缩图片保持大小不变

    压缩方法:1、使用getimagesize()函数获取图像信息;2、将原图复制到图片载体上,使用imagecopyresampled()函数按比例压缩,并保持清晰度和图片长宽不变;3、使用saveImage()保存图片。 本教程操作环境:w…

    2025年3月5日
    200
  • linux如何配置php环境变量

    设置方法:1、打开profile配置文件;2、执行“export PATH=$PATH:/路径”命令添加PHP运行目录;3、使用“:wq”命令保存配置并退出;4、执行“source /etc/profile”命令使添加的配置生效。 本文操作…

    2025年3月5日
    200
  • 如何将PHP数组数据转换为json

    在php中,可以使用json_encode()函数来将数组数据转换成json。json_encode()函数可以对变量进行json编码,如果转换成功则返回json数据,反之则返回false。 本教程操作环境:windows7系统、PHP7.…

    2025年3月5日
    200

发表回复

登录后才能评论