让我先说这个问题,我对 JSON 没有经验,所以如果我说错了什么,请纠正我。我已经搜索了几个小时,但找不到我的问题的解决方案。所以,我运行了一些 php,它应该返回包含 3 行数据的 JSON(高分表中的前三个用户)。在 php 文件中,我这样回显每一行:while ($row = $result->fetch_assoc()) { echo (json_encode($row));}但是,当我尝试解析输出时:func parseJSON(_ data:Data) { var jsonResult = NSArray() do { jsonResult = try JSONSerialization.jsonObject(with: data, options: []) as! NSArray } catch let error as NSError { print(error) }}控制台抛出错误:错误域=NSCocoaErrorDomain 代码=3840 “垃圾在末尾。” UserInfo={NSDebugDescription=末尾的垃圾。}这是服务器的实际输出:{"userid":"8","name":"Sam","highscore":"215","rank":"1"}{"userid":"9","name":"James","highscore":"210","rank":"2"}{"userid":"10","name":"Julian","highscore":"162","rank":"3"}根据jsonlint.com这不是有效的,但我不知道我能做些什么来解决这个问题。为什么 json_encode() 不在}括号后放置逗号,最重要的是如何修复无效的 JSON?谢谢你。
1 回答
沧海一幻觉
TA贡献1824条经验 获得超5个赞
您回显了多个 JSON 字符串,您需要将查询结果合并为 1 个数组,然后将其转换为单个 JSON 字符串:
$array = []
while ($row = $result->fetch_assoc()) {
$array[] = $row;
}
echo json_encode($array);
您的 JSON 将如下所示:
[
{"userid":"8","name":"Sam","highscore":"215","rank":"1"},
{"userid":"9","name":"James","highscore":"210","rank":"2"},
{"userid":"10","name":"Julian","highscore":"162","rank":"3"}
]
- 1 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消