整个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 =垃圾末。}
问题出在PHP服务器中,因为它没有正确发出JSON文件。要解决此问题,我必须确保PHP文件在第一个数据库行之前回显“ [”,在每个数据库行之间包含一个“,”,并在文件末尾添加一个“]”。
之前:
foreach ($rows as $document) {
echo(json_encode($document));
}
之后:
echo "[";
foreach ($rows as $document) {
echo(json_encode($document));
echo (", ");
}
echo "]";