【问题标题】:How do I select elements from json_encode d array?如何从 json_encode d 数组中选择元素?
【发布时间】:2011-06-08 17:44:42
【问题描述】:

我正在使用 JSON 和 javascript 从连接到数据库的 php 文件中检索数据。这就是我的 php 代码的样子:

while($row = $stmt->fetch_assoc()) {
$data[] = $row;
}

header("Content-type: text/plain");
echo json_encode($data,true);

这是我的 Javascript:

var displayfeeds = new ajaxObject('ajax/users/display.feeds.php');
displayfeeds.callback = function (responseText,status) {
    var feed = JSON.parse(JSON.stringify(responseText));
    $("#feeds-feedback").html(feed);
}
displayfeeds.update();

当我运行它时,它会打印出一个这样的数组:

[
    {
        "userID":"39160902151",
        "content":"bar bar bar bar",
        "published":"2011-06-07 10:33:35"
    },
    {
        "userID":"5896858666",
        "content":"foo foo foo foo foo",
        "published":"2011-06-06 22:54:51"
    }
]

我的问题是:我该如何显示“userID”和“content”? 我真的很挣扎。我是 JSON 新手。

【问题讨论】:

  • 无需对 JSON 进行双重编码,摆脱 JSON.stringify() 调用。 JSON.strigify() 是等效于 PHP 命令 json_encode() 的 JavaScript。由于您将其作为字符串接收,因此无需在 JS 中执行此操作。 JSON.parse() 接受 JSON 字符串并将其转换为对象,PHP 有一个名为 json_decode() 的等效函数,如果您将 JSON 字符串传递回 PHP,您将使用该函数。

标签: arrays object json


【解决方案1】:

您需要将您的 json 对象转换为 html 以显示它们。所以在你的回调函数中我会做这样的事情:

displayfeeds.callback = function (responseText,status) {
    var feed = JSON.parse(JSON.stringify(responseText));
    var html = '';

    // build html for each feed item
    for (var i = 0; i < feed.length; i++) {

        html += '<h3>UserID:: '+ feed[i]['userID'] +'</h3>';
        html += '<p>'+ feed[i]['content'] +'</p>';
        html += '<div><strong>published</strong>: '+ feed[i]['userID'] +'</div>';
        html += '<hr />';
    }
    // append content once all html is built
    $("#feeds-feedback").append(html);
}

【讨论】:

  • 非常感谢。有效。我只需要删除 stringify 并遵循你们两个人的建议。谢谢:-)
【解决方案2】:

获取第一个用户ID:

var feed = JSON.parse(responseText);
feed[0].userID

【讨论】:

  • 您应该在每个答案的分数下方看到一个灰色复选标记。单击以选择该答案。
猜你喜欢
  • 1970-01-01
  • 2017-06-09
  • 2020-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
  • 2011-11-24
相关资源
最近更新 更多