2012-06-23 113 views
1

我想在PHP中使用兩個查詢來創建JSON對象,然後使用ajax檢索這個對象。第一個將返回所有用戶。第二個嵌套查詢將返回與特定用戶關聯的所有任務。結構必須是這樣的:使用php創建JSON對象 - 嵌套查詢

{ 
[ 
user1 : { "name" : "name1" 
      "task" : [ { "taskname":"taskname1.1" , "date":"1-1" } , 

       { "taskname":"taskname1.2" , "date":"1-1" } 
     } 
} , 

user2: { "name" : "name2" 
     "task" : [ { "taskname":"taskname2.1" , "date":"2-2" } , 

       { "taskname":"taskname2.2" , "date":"2-2" } 
       ] 
    } 
... 
] 
} 

我的問題是:

當我試圖解析每個用戶的任務,我發現:

每個用戶的任務合併與以前用戶( )' 任務 。

那麼,使用php創建與我的結構相同的JSON對象的最佳方式是什麼?

---更新---

感謝大家誰回答我。但我需要知道如何動態創建,我知道如何在靜態中做到這一點,我之前正確使用json_encode(),這不是我的問題。我非常感謝你的回答,但這不是我需要的,我認爲問題在於我的問題。

+0

創建關聯數組並在其上運行'json_encode'。 – powerbuoy

+0

快速調試,使用http://json.parser.online.fr/並粘貼你的JSON,看看它是如何評估的。 – arijeet

+0

你的JSON是完全無效的 – matt3141

回答

1
$array=array(
    'user1'=>array(
         'tasks'=>array(
           'task1'=>'whatever', 
           'task2'=>'whatever', 
           'task3'=>'whatever' 
           ), 
         'date'=>'whatever' 
       ), 

    'user2'=>array(
         'tasks'=>array(
           'task1'=>'whatever', 
           'task2'=>'whatever', 
           'task3'=>'whatever' 
           ), 
         'date'=>'whatever' 
       ), 
    'user3'=>array(
         'tasks'=>array(
           'task1'=>'whatever', 
           'task2'=>'whatever', 
           'task3'=>'whatever' 
           ), 
         'date'=>'whatever' 
       )  
); 

然後使用JSON編碼發送JSON字符串。

echo json_encode($array); 
+0

謝謝NicolásTorres的回答。 –

+0

不客氣 –

0

我的PowerBuoy同意剛纔創建PHP中的鍵值對的數組:

$obj = array( 
      "User 1" => array( 
       "name" => "name1", 
       "tasks" => array(
        array("taskname" => "t1", "date" => "1-1"), 
        array("taskname" => "t2", "date" => "1-1") 
       ) 
      ), 
      "User 2" => array(...........) 

然後運行json_encode($obj);

我覺得這樣的事情應該爲你工作

+1

Ahhh尼古拉斯你打我:) –