为了账号安全,请及时绑定邮箱和手机立即绑定

Swift 4 - 错误代码 = 3840“垃圾在最后。” 解析 JSON 时

Swift 4 - 错误代码 = 3840“垃圾在最后。” 解析 JSON 时

PHP
神不在的星期二 2021-10-22 14:22:07
让我先说这个问题,我对 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"}

]


查看完整回答
反对 回复 2021-10-22
  • 1 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信