Umashankar Saw Umashankar Saw - 5 months ago 28
JSON Question

json_encode function not return Braces {} when array is empty in php

I have this code

$status = array(
"message"=>"error",
"club_id"=>$_club_id,
"status"=>"1",
"membership_info"=>array(),
);


echo json_encode($status);


This function return json:

{"message":"error","club_id":275,"status":"1","membership_info":[]}


But I need json like this:

{"message":"error","club_id":275,"status":"1","membership_info":{}}

Answer

use the JSON_FORCE_OBJECT option of json_encode:

json_encode($status, JSON_FORCE_OBJECT);

Documentation

JSON_FORCE_OBJECT (integer) Outputs an object rather than an array when a non-associative array is used. Especially useful when the recipient of the output is expecting an object and the array is empty. Available since PHP 5.3.0.

Or,

$status = array(
                "message"=>"error",
                "club_id"=>$_club_id,
                "status"=>"1",
                "membership_info"=> new stdClass()
                );

will also do the trick.