JSON数据在数组中的原因?

时间:2013-03-25 16:08:02

标签: php jquery json

这可能是一个愚蠢的问题,但由于我没有编程很长时间,我想知道为什么我应该在数组中发送Json数据?我问的原因是我正在使用Ajax回调构建一个简单的jQuery表单(是的,使用json来处理简单的事情是不必要的,但我想学习如何使用它)。该脚本向php函数发送一个id号,这取决于id号可以返回一个或多个表单。所以问题是为什么我应该在数组中发送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 个答案:

答案 0 :(得分: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"]
            ]
}

这完全取决于您和数据的最终用途。

答案 1 :(得分:0)

由于几个原因,JSON优于AJAX中的XML。我希望这会有所帮助。

JSON and XML comparison