首页 > 解决方案 > 如何在 JSON 中创建嵌套标签

问题描述

我一直在摆弄 JSON 嵌套标签,现在尝试了基础知识,我想更进一步,但它让我有点头疼。我在下面有这个公共功能

   public function returnResponse($code, $data){
    header("content-type: application/json");
    $result = json_encode(['response' => ['status' => $code, "message"  => $data]]);
    echo $result ; exit;        

}
      $order= $cust->getDeliveryDetail();   

使用print_r($order);

      Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [order_id] => 4444
                    [menu] => two
                    [order_uniq] => 999oeo4

                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [pro_name] => Beans
                    [pro_sub] => Goods
                    [pro_type] => Open CA
                )

            [1] => Array
                (
                    [pro_name] => Rice
                    [pro_sub] => Fiber
                    [pro_type] => Diverca
                )

        )

)

然后将对象附加到引用的元素和值

     $result ['order_id'] = $order[0][0]['order_id'];   
      $result ['menu'] = $order[0][0]['menu'];  
      $result ['order_uniq'] = $order[0][0]['order_uniq'];
      $result ['pro_name'] = $order[0][0]['pro_name'];
      $result ['pro_sub'] = $order[0][0]['pro_sub'];
     $result ['pro_type'] = $order[0][0]['pro_type'];

     $this->returnResponse(SUCCESS_RESPONSE, $result); //THIS IS THE ORIGINAL BEGINNING PUBLIC FUNCTION WE CREATED

在下面创建这个 JSON 嵌套标签

     {
    "response": {
        "status": 200,
        "message": {
            "order_id": "4444",
            "menu": "two",
            "order_uniq": "999oeo4",
            "pro_name": "Beans",
            "pro_sub": "Goods",
            "pro_type": "Openca",
          }
    }
}

但我想创建一个像下面这样的 JSON 嵌套标签

    {
    "response": {
        "status": 200,
        "message": {
            "order_id": "4444",
            "menu": "two",
            "order_uniq": "999oeo4",
            "items": [
            {
            "pro_name": "Beans",
            "pro_sub": "Goods",
            "pro_type": "Openca",
            }
            {
            "pro_name": "Rice",
            "pro_sub": "Fiber",
            "pro_type": "Diverca",
            }    
            ]
    },
    }
}

标签: phpjson

解决方案


像这样?

$result = array(
    'order_id' = > $order[0][0]['order_id'],
    'menu' => $order[0][0]['menu'],  
    'order_uniq' => $order[0][0]['order_uniq'],
    'pro_name' => $order[0][0]['pro_name'],
    'pro_sub' => $order[0][0]['pro_sub'],
    'pro_type' => $order[0][0]['pro_type'],
    'items' => array()
);

foreach($order[1] as $item) {
    array_push(
        $result['items'],
        array(
            'pro_name' => $item['pro_name'],
            'pro_sub' => $item['pro_sub'],
            'pro_type' => $item['pro_type'],
        )
    );
}

推荐阅读