2015-04-06 81 views
1

我在PHP創建JSON從另一個應用程序讀取,我要分類的JSON數據作爲創建我的JSON右鍵對象

jobs: 
    job: 
    ID: 123 
    name: Job Name 1 
    job: 
    ID: 321 
    name: Job Name 2 
    job: 
    ID: 231 
    name: Job Name 3 

什麼我得到的卻是

0: 
    ID: 123 
    name: Job Name 1 
1: 
    ID: 321 
    name: Job Name 2 
2: 
    ID: 231 
    name: Job Name 3 

我使用創造了JSON的PHP代碼如下:

$rs = mysqli_query($dbc, "SELECT id, name FROM job"); 
while($obj = mysqli_fetch_object($rs)) { 
    $arr[] = $obj; 
} 
echo json_encode($arr, JSON_FORCE_OBJECT); 

什麼我需要做的,必須在JSON每個項目分類作爲'工作',整個列表被歸類爲'工作'?

+0

你不能(對於你的問題的第一部分)。你如何區分不同的工作?如果必須,可以將整個數組放在另一個數組中,並帶有'jobs'鍵。雖然沒有太多附加值。 – jeroen

+0

如果我看Reddit的JSON [鏈接](http://www.reddit.com/.json),它被格式化爲children = {然後在多個數據= {。這是我試圖達到的格式。 – Charlbury

回答

0

試試這個

$rs = mysqli_query($dbc, "SELECT id, name FROM job"); 
while($obj = mysqli_fetch_object($rs)) { 
    $arr['job'][] = $obj; 
} 
echo json_encode($arr, JSON_FORCE_OBJECT); 
+0

這給了我錯誤:'致命錯誤:無法使用類型爲stdClass的對象作爲數組' – Charlbury

+0

無論如何,我認爲你不能這樣做是因爲你的** KEY **不是唯一的。 – user789456

0

給一個嘗試這樣

while($obj = mysqli_fetch_object($rs)) { 
    $arr['jobs'][]['job'] = $obj; 
} 
echo json_encode($arr); 

更新:

$obj_user1 = new stdClass; 
$obj_user1->id = "1"; 
$obj_user1->name = "a"; 

$obj_user2 = new stdClass; 
$obj_user2->id = "2"; 
$obj_user2->name = "b"; 

$obj_user = array($obj_user1,$obj_user2); 

foreach($obj_user as $a){ 
    $arr['jobs'][]['job'] = $a; 
} 

print_r(json_encode($arr)); 

輸出: {"jobs":[{"job":{"id":"1","name":"a"}},{"job":{"id":"2","name":"b"}}]}