2014-10-28 82 views
0

我正在爲Android應用程序構建管理後端。我的代碼提供了一個json輸出,然後android開發人員在他的應用程序中使用它。開發人員問我是否有可能減少層級的JSON輸出從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(); 
    } 

} 

而產生

[ 
    { 
    "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" 
    } 
    } 
] 

的JSON輸出我不是很肯定,如果我可以讓他問的變化,或者如果它是可能的。它可行嗎?

回答

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" 
       } 
      ] 
     } 
    ] 
}