【问题标题】:Php return json with complex structure [closed]php返回json结构复杂[关闭]
【发布时间】:2016-02-04 06:58:41
【问题描述】:

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

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

请告诉我,实现它的方法

【问题讨论】:

  • 什么都试过了?

标签: php json rest


【解决方案1】:

您可以在 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 架构。

【讨论】:

    【解决方案2】:

    这个简单的代码:

    $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);
    

    【讨论】:

      猜你喜欢
      • 2017-01-26
      • 1970-01-01
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 1970-01-01
      • 2017-08-02
      • 2021-05-13
      相关资源
      最近更新 更多