如何在swift中解析数据库中的JSON数组
在我的应用程序中,我试图解析一个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文件:如何在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,“城市名称”:“
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] {
}
}
}
}
}
}