Php返回具有复杂结构的json

时间:2015-11-03 23:01:24

标签: php json rest

我是一名新的PHP开发人员。我正在使用PHP开发rest服务器。现在我需要返回我的客户端json,结构如下:

{
"id":"45",
"login":"OlegRy",
"image":"no_avatar.png",
"fon":"",
"messages":[
    {
        id:1,
        text:hi
    },
    {
        id:2,
        text:how are u?
    }
],"subs_login":[]}

请告诉我,实现它的方式

2 个答案:

答案 0 :(得分:0)

您可以使用PHP中的array()

创建该数据结构
$out = array("id" => "45",
  "login" => "OlegRy",
  "image" => "no_avatar.png",
  "fon" => "",
  "messages" => array(
    array("id" => 1,
          "text" => "hi"
      ),
    array(
      "id" => 2,
      "t)xt" => "how are u?"
      )
  ),
  "subs_login" => array()
  );
echo json_encode($out);

附加说明:

如果您正在使用输出缓冲,我建议您在回显json之前使用ob_clean();

根据您想要的前端数据格式,您可能希望将JSON_NUMERIC_CHECK与json_encode()一起使用,以防止整数转换为字符串。

echo json_encode($out, JSON_NUMERIC_CHECK);

您可能还希望在回显json后立即exit();以防止任何进一步的输出,具体取决于您的PHP体系结构。

答案 1 :(得分:0)

这个简单的代码:

$data = array(
    'id' => 45,
    'login' => 'OlegRy',
    'image' => 'no_avatar.png',
    'fon' => '',
    'messages' => array(
        array(
            'id' => 1,
            'text' => 'hi',
        ),
        array(
            'id' => 2,
            'text' => 'how are u?',
        ),
    ),
    'subs_login' => array(
        // I dont't know what to put here...
    ),
);
echo json_encode($data);