You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中将空数组转为JSON对象({})而非数组([])

解决方案

要让空的parent字段序列化为JSON对象{},你需要将PHP中的空索引数组替换为空关联数组或空对象,以下是几种可行方法:

方法1:使用空关联数组

PHP中,无数字索引的空关联数组会被json_encode序列化为JSON对象,你可以用(array) null来创建空关联数组:

<?php
    $newArray = array(
        "name" => "SMK Bina Rahayu", 
        "grade" => "below", 
        "parent" => (array) null
    );
    $afterEncode = json_encode($newArray);
    print_r($afterEncode);
?>

方法2:使用空对象(stdClass)

直接实例化stdClass空对象作为parent的值,json_encode会将对象转为JSON对象:

<?php
    $newArray = array(
        "name" => "SMK Bina Rahayu", 
        "grade" => "below", 
        "parent" => new stdClass()
    );
    $afterEncode = json_encode($newArray);
    print_r($afterEncode);
?>

方法3:使用JSON_FORCE_OBJECT参数(全局强制转换)

如果不需要区分数组和对象的序列化结果,可以在json_encode时添加JSON_FORCE_OBJECT参数,强制所有数组转为JSON对象:

<?php
    $newArray = array(
        "name" => "SMK Bina Rahayu", 
        "grade" => "below", 
        "parent" => array()
    );
    $afterEncode = json_encode($newArray, JSON_FORCE_OBJECT);
    print_r($afterEncode);
?>

注意:此方法会将所有数组(包括正常索引数组)转为对象,仅适合不需要保留数组结构的场景。

以上三种方法执行后,都会输出你需要的结果:

{
  "name": "SMK Bina Rahayu",
  "grade": "below",
  "parent": {}
}

内容的提问来源于stack exchange,提问作者Meikel Rizky Hartawan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:25:16