从json输出中删除不必要的层次结构

时间:2014-10-28 18:04:52

标签: php android json

我正在为Android应用程序构建管理员后端。我的代码提供了一个json输出,android开发人员然后在他的应用程序中使用它。开发人员问我是否可以降低json输出中的层次结构级别

json output

删除突出显示的[]0并将内容直接放在[]data内。

这是我目前的PHP代码

if($type == 1 )             //Handle item display
{
    try
    {
        $query = "SELECT category FROM category";       
        $result= $DBH->query($query);

        while($row = $result->fetch(PDO::FETCH_ASSOC))
        {
            $cat    = $row['category'];
            $query1 = "SELECT * FROM item WHERE catagory='$cat'";       
            $value  = $DBH->query($query1);
            if($row1 = $value->fetchAll(PDO::FETCH_OBJ)){
                $main[] = array('data'=>array($row1));
            }
            else
            {
                $main[] = array('data'=>array('catagory'=>$row['category']));
            }

        }
        echo json_encode($main);
        $result->closeCursor();         //Close database connection free resources
        $DBH = null;
    }
    catch(PDOException $e){
        print $e->getMessage ();
        die();
    }

}

生成json输出

    [
  {
    "data": [
      [
        {
          "id": "2",
          "name": "rice",
          "price": "20",
          "description": "Plain Rice",
          "image": "4106_rice.jpg",
          "time": "12 mins",
          "catagory": "Lunch",
          "subcat": ""
        },
        {
          "id": "3",
          "name": "item 1",
          "price": "32",
          "description": "item 1 description",
          "image": "1370_2Ckjikljklkljh.jpg",
          "time": "10",
          "catagory": "Lunch",
          "subcat": "Chicken Soup"
        },
        {
          "id": "4",
          "name": "hello",
          "price": "10",
          "description": "fgsdjfsfsdj",
          "image": "",
          "time": "76",
          "catagory": "Lunch",
          "subcat": ""
        }
      ]
    ]
  },
  {
    "data": {
      "catagory": "Dinner"
    }
  },
  {
    "data": {
      "catagory": "Soup"
    }
  },
  {
    "data": {
      "catagory": "Test"
    }
  }
]

我不确定我是否可以进行他要求的更改或是否可能。它可行吗?

1 个答案:

答案 0 :(得分:1)

您的json结构不一致并尝试这种方法,开发人员将更容易解析

{
    "response": [
        {
            "data": [
                {
                    "id": "2",
                    "name": "rice",
                    "price": "20",
                    "description": "Plain Rice",
                    "image": "4106_rice.jpg",
                    "time": "12 mins",
                    "catagory": "Lunch",
                    "subcat": ""
                },
                {
                    "id": "3",
                    "name": "item 1",
                    "price": "32",
                    "description": "item 1 description",
                    "image": "1370_2Ckjikljklkljh.jpg",
                    "time": "10",
                    "catagory": "Lunch",
                    "subcat": "Chicken Soup"
                },
                {
                    "id": "4",
                    "name": "hello",
                    "price": "10",
                    "description": "fgsdjfsfsdj",
                    "image": "",
                    "time": "76",
                    "catagory": "Lunch",
                    "subcat": ""
                }
            ]
        },
        {
            "data": [
                {
                    "catagory": "Dinner"
                }
            ]
        },
        {
            "data": [
                {
                    "catagory": "Soup"
                }
            ]
        },
        {
            "data": [
                {
                    "catagory": "Test"
                }
            ]
        }
    ]
}