2013-03-25 29 views
0

這可能是一個愚蠢的問題,但因爲我沒有編程很久我不知道爲什麼我應該發送數組中的Json數據?我問的原因是我正在用Ajax回調構建一個簡單的jQuery表單(對於簡單的事情,使用json是不必要的,但我想學習如何使用它)。該腳本向一個php函數發送一個id號碼,這取決於id號碼可以返回一個或多個表單。所以問題是爲什麼我應該發送一個數組中的JSON數據?JSON數據在數組中的原因?

不知道它是否重要,但這裏是正在重新調整數據的結構。

foreach ($list as $row) { 
    $out[] = ('<tr><td><a href="'.$row['link_form'].'">'.$row['name_form'].'</a></td> <td>'.$row['date_added'].'</td></tr>'); 

回答

2

您用於返回數據的數據結構應該名義上匹配的數據本身。所以,如果你要返回一個具有相似屬性的事物列表,你應該使用一個數組;如果你返回的東西更有意義劃分成鍵值對,則返回一個對象。

使用JSON,您可以嵌套這些。所以,例如,你可以有一個對象數組,這是一個非常常見的用例。假設你正在返回一個數據庫表:每個記錄可以是一個數組元素,它是一個描述這些字段的對象。

[ 
    {"id": 1, "name": "Joe Bloggs"}, 
    {"id": 2, "name": "Jane Doe"}, 
    {"id": 3, "name": "I.P. Freely"} 
] 

鑑於你的對象是在這種情況下均質 - 具有相同的鍵值結構 - 你可以返回數組的數組,來代替。或者,你可以做的事情真的很一般,並返回描述該表的對象,然後掏空內容數組的數組:

{ 
    "fields": [ 
       {"name": "id", "type": "number"}, 
       {"name": "name", "type": "string"} 
      ], 
    "data": [ 
       [1, "Joe Bloggs"], 
       [2, "Jane Doe"], 
       [3, "I.P. Freely"] 
      ] 
} 

這真的取決於你和數據的最終用途。

0

由於以下幾個原因,JSON比AJAX中的XML更受歡迎。我希望這會有所幫助。

JSON and XML comparison

+0

我更想找一個答案,爲什麼我應該有一個數組中的JSON數據,而不僅僅是發送它?在過去,我總是投入一個陣列,但我更新的知道爲什麼。現在我發現了Stackoverflow,我有一個地方可以問你最近知道答案的愚蠢事情。 – StenW 2013-03-25 16:24:08