将JSON快速转换为字典数组问题,错误代码3840(末尾有垃圾)

问题描述 投票:0回答:1

整个HTML请求中,我从数据库中下载了一个JSON文件。这是我返回的JSON文件。

{"_id":{"$oid":"5e8e09d0bf75d176ecfa2101"},"name":"Pasta al pomodoro","category":"Primi","ingredients":"","price":"15.99","available":true}{"_id":{"$oid":"5e8e0c2da73abb76ec812daf"},"name":"Cotoletta","category":"Carne","ingredients":"Cotoletta, Limone","price":"25.99","available":true}

[我尝试将JSON文件转换为字典数组,以便可以通过示例选择项目:

myArray[0]['name']

这是我用来尝试转换JSON的代码:

do {
    let myArray = try (JSONSerialization.jsonObject(with: data, options : .mutableContainers) as? [Dictionary<String, Any>])!
    print(myArray)
    //completion(myArray, nil)
}

但是它似乎不起作用;它返回错误消息:

错误域= NSCocoaErrorDomain代码= 3840“垃圾结束。” UserInfo = {NSDebugDescription =垃圾末。}

json swift jsonserializer
1个回答
0
投票

问题出在PHP服务器中,因为它没有正确发出JSON文件。要解决此问题,我必须确保PHP文件在第一个数据库行之前回显“ [”,在每个数据库行之间包含一个“,”,并在文件末尾添加一个“]”。

之前:

foreach ($rows as $document) {
        echo(json_encode($document));
    }

之后:

echo "[";
foreach ($rows as $document) {
    echo(json_encode($document));
    echo (", ");
}
echo "]";
© www.soinside.com 2019 - 2024. All rights reserved.