【发布时间】:2013-08-02 23:58:03
【问题描述】:
我已经搜索了这些帖子,但我找不到任何可以使用的东西。
我希望在解决方案方面得到一些帮助,但更重要的是,如果有人有几分钟的时间,您能否解释一下您是如何深入研究对象数组的?我有大约 5 种不同的格式,我将此查询发送到 jquery,我最大的问题是我不知道如何开始挖掘数组/对象。即我将像这样访问第一个元素,现在我有了它,我将像这样获得第二个元素......等等。
我的对象/数组的当前布局设置为每个对象都有一个数组。我的想法是,对象是行,数组是字段。我将它设置为关联数组,因为我认为我可以更轻松地访问所有内容,但我的问题是我只是在阅读帖子,并且真的在猜测。我想要一个具体的解释,这样我就可以随时访问任何类型的对象/数组,而不必再次询问。
{
"myArray1":
{
"Caption" : "First Caption",
"Message" : "First Message",
"Post_date" : "2013-08-02 18:24:33",
"Name: "Author"
},
"myArray2":
....
这是我的 PHP。
while($rRow = mysqli_fetch_array($selResult))
{
$row = Array();
foreach($fldArray as $fld)
{
$row[$fld] = $rRow[$fld];
}
$count = $count + 1;
$output["myArray".$count] = $row;
}
$output = json_encode($output);
echo $output;
【问题讨论】:
-
那里没有数组。这些只是嵌套的对象。从 JSON 解析为 javascript 对象后,您会像这样访问它:
obj.myArray1.Caption、obj.myArray2.Message等。您实际上是在尝试创建数组而不是对象吗?如果是这样,您应该显示您的 PHP 代码以接收关于那里出了什么问题的反馈。 -
我更新以显示 PHP...我正在尝试找到最佳解决方案来获取我的结果并将它们发送到 javascript,然后将它们放入 HTML 表中。
-
JSON/javascript 的问题是没有像 PHP 中那样的关联数组的概念。所以关联数组会在
json_encode()进程中自动转换为对象。 -
如果您只是将
$output["myArray".$count] = $row更改为$output[] = $row,那么您最终会得到一个可能更有意义的对象数组(除非您实际上将含义附加到myArrayX命名约定)。在这种情况下,一旦您将 JSON 解析为 javascript(这一次它创建一个数组),您将访问array[0].Caption、array[1].Message等。 -
我试过了 - console.log(data.myArray1.Caption);它说 data.myArray1 未定义。数据是我在回调函数中收到的。我知道数据有结果,因为当我将整个变量打印到控制台时,它会打印出来。我将尝试按照您的说明更改我的 PHP。
标签: jquery arrays json object get