900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > php空数组怎么转json对象

php空数组怎么转json对象

时间:2023-07-12 08:36:11

相关推荐

php空数组怎么转json对象

后端开发|PHP问题

php

后端开发-PHP问题

安卓截屏源码,vscode和浏览器一块显示,前端开发 ubuntu,怎么查看tomcat的位,锦州爬虫馆,大连php培训哪家好,沧州seo推广大概多少钱lzw

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

快车盘源码系统,ubuntu怎么建web,爬虫程序怎么挣钱,status php,seo发现好吗lzw

PHP json_encode转换空数组为对象

工具站点源码,ubuntu安装efi顺序,tomcat8虚目录配置,golang爬虫框架教程,php数据显示到页面上,丰城SEO优化lzw

问题描述:

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

如:

$arr = [id => 123., ame => 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视频教学】

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。