PHP API - 编码多个数据条目

时间:2016-07-19 14:16:35

标签: php json api

这是所需的输出(以JSON格式)

{
     response: {
       code: "400",
       total_results: "100",
       listings: [
        {
           "title": "My First Application",  
           "imgage": "image1.jpg"

        },

        {
           "title": "My second Application",  
           "imgage": "image1.jpg"

        },  

       ]
     }
}

我存储了允许状态代码等的response,而实际列表就是数据。我正在构建一个移动应用程序,所以我希望能够放置:data.titledata.image

这是我到目前为止(在PHP中):

 $response = array("response" =>
    array(
        "code" => "400",
        "total_results" => "100",

        "listings" => array("title" => "My first listing", "image" => "image1.jpg"),


    ),

  );

然而这是错误的,因为它不允许我有多个商家信息,也不允许我(在应用内)引用titleimage

有人可以建议我如何做到这一点,以便正确格式化数据吗?

4 个答案:

答案 0 :(得分:3)

您只需要将列表设为多维数组:

$response = array("response" =>
    array(
        "code" => "400",
        "total_results" => "100",

        "listings" => array(
            (object) ["title" => "My first listing", "image" => "image1.jpg"],
            (object) ["title" => "My second listing", "image" => "image1.jpg"]
        ),


    ),

  );

我已将列表中的数组作为对象进行投射,就像您的JSON结构所暗示的那样。

答案 1 :(得分:1)

尝试上课:

class Item{ public $title; public $image; function __construct($title, $img){ $this->title = $title; $this->image = $img; } }

所以现在你可以这样做:

$response = array("response" =>
    array(
        "code" => "400",
        "total_results" => "100",
        "listings" => array(new Item("My first listing","image1.jpg"),new Item("My second listing","image2.jpg"))
    ),
  );

答案 2 :(得分:0)

无论如何你决定(并且,正如你所看到的,“有不止一种方法可以做到这一点......”),底部你需要“数组数组”。 (或者,在其他一些语言中可能会称之为“struct的数组......)

JSON将有义务对任何 PHP数据结构进行编码和解码。 “获得正确的数据结构”,JSON将自行处理。

答案 3 :(得分:-2)

使用此阵列您尝试:     $ json_response = json_encode($ response);