首页 > 解决方案 > 如何快速解析数据库中的 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 并快速获取数据?

标签: jsonswift

解决方案


试试这个。如果您的 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] {

                        }
                    }
                }
            }
        }
    }

推荐阅读