json - 如何快速解析数据库中的 JSON 数组
问题描述
在我的应用程序中,我正在尝试解析 JSON 文件。
这是我的 JSON:
[ {“locals”:[{“name”:“Mission Chinese Food”,“localDescription”:“A”,“照片”:“img_02.jpg”,“地址”:“171 E Broadway, New York, NY 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, "cityName": "New York", "ratingValue": 5 }, { "locals": [{"name": "Mission Chinese Food", "localDescription": "A", "photograph": “img_02.jpg”、“地址”:“171 E Broadway, New York, NY 10002”、“时间表”:“Lunedi al Sabato 08:00-12:00 e 14:00- 18:00 Domenica 08:00- 12:00 和 14:00- 18:00", "numberOfReviews”:10,“numberInCity”:2,“cityName”:“纽约”,“ratingValue”:5 },]
这是我的快速文件:
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 中发生的错误:
60 错误域 = NSCocoaErrorDomain 代码 = 3840 “字符 0 周围的值无效。” UserInfo={NSDebugDescription=字符 0 周围的值无效。} 2018-06-29 09:44:19.293880+0200 eventsProject[13504:4365358] [BoringSSL] 函数boringssl_session_errorlog:第2871行[boringssl_session_read] SSL_ERROR_ZERO_RETURN(6):操作失败,因为连接已通过 close_notify 警报 2018-06-29 09:44:19.294067+0200 eventsProject[13504:4365358] [BoringSSL] 功能完全关闭关闭并发出 close_notify 警报 2018-06-29 09:44:19.294258+0200 eventsProject[13504:4365358] [BoringSSL] 函数boringssl_session_errorlog:第2871行[boringssl_session_read] SSL_ERROR_ZERO_RETURN(6):
如何解析我的 JSON 并快速获取数据?
解决方案
试试这个。如果您的 JSON 有效,这将起作用。
例如。
[ {“本地人”:[ {“名称”:“中国食品使命”,“localDescription”:“A”,“照片”:“img_02.jpg”,“地址”:“171 E Broadway, New York, NY 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”,“cityName”:“纽约”,“ratingValue”:“5”}]}]
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] {
}
}
}
}
}
}
推荐阅读
- google-cloud-platform - 使用云端点框架 v2 实施 Https
- sql-server - SQL Server 更新设置案例何时
- angular-universal - 如何禁用内联 CSS 源映射
- ios - 如何让 SceneKit 对象完全不反弹
- azureservicebus - 无法使用命名空间连接字符串列出中继命名空间内的混合中继
- java - 如何从给定列表中获取具有更多小写字符的字符串?
- python - Django:CreateView 中的 transaction.atomic,form_valid()
- c - 是否有适用于 Mac 的 Eclipse 的 C 调试器?
- javascript - 通过 Ajax PHP 和 JavaScript 在表中插入模态数据
- ruby - 比较日期在不同年份不起作用但在同一年份工作正常