gpt4 book ai didi

php - 遍历 JSON(添加 HTML)

转载 作者:行者123 更新时间:2023-11-29 06:37:23 25 4
gpt4 key购买 nike

我正在尝试遍历 PHP 的 JSON 输出并为每个索引分配一个列表项。

我有两个不同的问题。

  • 编码器会在不需要时添加奇怪的斜杠和引号。
  • 在解析 JSON 字符串时出现类型错误(无效参数),即使是从测试 php 数组设置的也是如此。

PHP

$data= json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
echo json_encode($data);

JSON

"[
{\"id\":\"1\",\"user_id\":\"1\",\"message\":\"MSG 1\"},
{\"id\":\"2\",\"user_id\":\"1\",\"message\":\"MSG 2\"},
{\"id\":\"3\",\"user_id\":\"1\",\"message\":\"MSG 3 \"},
]"

jQuery

  $.ajax({ url: 'chat.php',
dataType: 'json',
type: 'post',
error: function(statusCode, errorThrown) {
updateError(statusCode, errorThrown);
},
success: function(data){

$.each(data, function() {
$.each(this, function(k, v) {
$('<li data-msgid="'+data.id+'">' + data.user_id + '::' + data.message + '</li>').appendTo('#chat_area');
});
});

}

});

我使用的是 ajax 调用而不是 json,因为我最终将在同一个函数中传递数据。非常感谢任何帮助。

最佳答案

你编码了两次:

$data= json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
echo json_encode($data);

去掉第一个,只编码最后的数据:

$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
...
echo json_encode($data);

关于php - 遍历 JSON(添加 HTML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23686604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com