PHP获取WordPress评论后JSON格式输出异常问题求助
解决WordPress评论输出标准JSON数组的问题
我懂你遇到的麻烦啦——你现在的代码是在循环里逐个输出单条评论的JSON对象,结果就变成了多个独立的JSON片段堆在一起,完全不符合标准的JSON数组格式对吧?
问题根源
你之前的写法应该是在foreach循环内部直接echo json_encode(单条评论数据),这样每循环一次就输出一个独立的{...},最终结果就是多个JSON对象零散排列,而不是被[]包裹的合法数组。
修复方案
核心思路是先把所有评论数据收集到一个PHP数组里,最后一次性转成JSON输出,具体代码如下:
// 初始化一个空数组,用来存放所有评论数据 $comments_data = []; foreach ( $comments as $comment ) : // 获取评论作者和内容 $author = $comment->comment_author; $content = $comment->comment_content; // 将当前评论的信息添加到数组中 $comments_data[] = [ 'author' => $author, 'comment' => $content ]; endforeach; // 设置响应头,告诉客户端返回的是JSON格式数据 header('Content-Type: application/json'); // 将整个数组编码为标准JSON格式并输出 echo json_encode($comments_data);
这样输出的结果就会是你想要的标准JSON数组:
[{ "author": "JimmiXzSq", "comment": "test1" }, { "author": "MoseJackswka", "comment": "test2" }]
额外提示
- 如果需要处理中文乱码问题,可以给
json_encode加上参数:json_encode($comments_data, JSON_UNESCAPED_UNICODE) - 确保在
echo之前没有任何其他输出(比如空格、HTML标签),否则会破坏JSON格式
内容的提问来源于stack exchange,提问作者Partha Sarathy
相关产品推荐
相关产品推荐

