PHP json_encode - JSON_FORCE_OBJECT mixed object and array output

前端 未结 3 1136
谎友^
谎友^ 2020-12-30 19:16

I have a PHP data structure I want to JSON encode. It can contain a number of empty arrays, some of which need to be encoded as arrays and some of which need to be encoded a

3条回答
  •  渐次进展
    2020-12-30 19:39

    Create bar1 as a new stdClass() object. That will be the only way for json_encode() to distinguish it. It can be done by calling new stdClass(), or casting it with (object)array()

    $foo = array(
      "bar1" => new stdClass(), // Should be encoded as an object
      "bar2" => array() // Should be encoded as an array
    );
    
    echo json_encode($foo);
    // {"bar1":{}, "bar2":[]}
    

    OR by typecasting:

    $foo = array(
      "bar1" => (object)array(), // Should be encoded as an object
      "bar2" => array() // Should be encoded as an array
    );
    
    echo json_encode($foo);
    // {"bar1":{}, "bar2":[]}
    

提交回复
热议问题