如何在swift中解析数据库中的JSON数组

如何在swift中解析数据库中的JSON数组,json,swift,Json,Swift,在我的应用程序中,我试图解析一个JSON文件 这是我的JSON: [当地人]:[当地人]:[当地人姓名]:“传教中国食品”,“当地描述”:“A”,“照片”:“img_02.jpg”,“地址”:“纽约百老汇171 E街,纽约10002”,“时间表”:“Lunedi al-Sabato 08:00-12:00 E 14:00-18:00 Domenica 08:00-12:00 E 14:00-18:00”,“numberOfReviews”:10,“numberInCity”:2,“城市名称”:“

在我的应用程序中,我试图解析一个JSON文件

这是我的JSON:

[当地人]:[当地人]:[当地人姓名]:“传教中国食品”,“当地描述”:“A”,“照片”:“img_02.jpg”,“地址”:“纽约百老汇171 E街,纽约10002”,“时间表”:“Lunedi al-Sabato 08:00-12:00 E 14:00-18:00 Domenica 08:00-12:00 E 14:00-18:00”,“numberOfReviews”:10,“numberInCity”:2,“城市名称”:“纽约”,“评级价值”:5},{“当地人”:[{“名称:”“传教中国食品”“当地描述:”“A”“照片:”“img_02.jpg”“地址:”“纽约百老汇171 E”“纽约10002”“时间表:”“Lunedi al-Sabato 08:00-12:00 E 14:00-18:00 Domenica 08:00-12:00 E 14:00-18:00”“numberOfReviews:”“numberInCity”:2,“城市名称:”“纽约”“评级价值”:5},]

这是我的swift文件:

let url = URL(string: "https://www.litos.srl/showtime/dbGetLocal.php")

do {
    let data = try Data(contentsOf: url!)
    print(data[0])

    guard let rootObject = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [[String:AnyObject]]  else {
    return locals
}

print(rootObject)
let localsObjects = rootObject[0]["locals"] as? [[String:AnyObject]]

    } catch {
        print(error)
        return locals
    }
    return locals
}
这是生成和运行代码时在Xcode中发生的错误:

六十 错误域=NSCOCAERRORDOMAIN Code=3840“字符0周围的值无效。”UserInfo={NSDebugDescription=字符0周围的值无效。} 2018-06-29 09:44:19.293880+0200事件项目[13504:4365358][BoringSSL]函数BoringSSL_会话_错误日志:第2871行[BoringSSL_会话_读取]SSL_错误_零返回(6):操作失败,因为连接已完全关闭并发出关闭通知警报 2018-06-29 09:44:19.294067+0200事件项目[13504:4365358][BoringSSL]函数BoringSSL_会话_错误日志:第2871行[BoringSSL_会话_读取]SSL_错误_零返回(6):操作失败,因为连接已完全关闭并发出关闭通知警报 2018-06-29 09:44:19.294258+0200事件项目[13504:4365358][BoringSSL]函数BoringSSL_会话_错误日志:第2871行[BoringSSL_会话_读取]SSL_错误_零返回(6):操作失败,因为连接已完全关闭并发出关闭通知警报


如何解析我的JSON并在swift上获取数据?

您的数据无效。它不应以结尾,]括号之前。

试试这个。如果您的JSON有效,这将起作用

比如说

[{“当地人”:[ {“姓名”:“传教中国食品”,“地点描述”:“A”,“照片”:“img_02.jpg”,“地址”:“纽约百老汇171 E,纽约10002”,“时间表”:“Lunedi al-Sabato 08:00-12:00 E 14:00-18:00 Domenica 08:00-12:00 E 14:00-18:00”,“评论数”:“10”,“数字城市”:“2”,“城市名称”:“纽约”,“评级价值”:“5”}]


您的Url响应数据缺少功能,请检查,字典没有正确的结尾

下面是您的Json响应

{“id”:0,“姓名”:“传教中餐”,“地点描述”:“A”,“照片”:“img_02.jpg”,“地址”:“纽约百老汇171 E”,纽约10002,“时间表”:“Lunedi al-Sabato 08:00-12:00 E 14:00-18:00 Domenica 08:00-12:00 E 14:00-18:00”,“numberOfReviews”:10,“numberInCity”:2,“城市名称”:“纽约”,“评级价值”:5} stdClass Object([本地人]=>0){“id”:1,“姓名”:“传教中餐”,“本地描述”:“B”,“照片”:“img_02.jpg”,“地址”:“纽约百老汇171 E”,纽约10002”,“时间表”:“Lunedi al-Sabato 08:00-12:00 E 14:00-18:00 Domenica 08:00-12:00 E 14:00-18:00”,“numberOfReviews”:10,“numberInCity”:2,“城市名”:“纽约”额定值“:5} stdClass Object([本地人]=>0){“id”:2,“姓名”:“赫特人朱巴”,“本地描述”:“V”,“照片”:“img_02.jpg”,“地址”:“纽约百老汇171 E”,纽约10002”,“时间表”:“Lunedi al-Sabato 08:00-12:00 E 14:00-18:00 Domenica 08:00-12:00 E 14:00-18:00”,“numberOfReviews”:10,“numberInCity”:2,“城市名称”:“纽约”,“评级价值”": 5 } stdClass对象([locals]=>0) stdClass对象([locals]=>0)


感谢您的回答,但这是发生的错误:error Domain=NSCocoaErrorDomain Code=3840“字符0周围的值无效”。UserInfo={NSDebugDescription=字符0周围的值无效。}JSON已损坏,有3个左括号[但只有1个右括号]和一个多余的逗号作为最后一个字符。
if let data = JSON as? NSArray {
        for data in data {
            if let data = data as? [String: AnyObject] {
                if let data = data["locals"] as? NSArray {
                    for data in data {
                        if let data = data as? [String: AnyObject] {

                        }
                    }
                }
            }
        }
    }