如何继续错误的Alamofire JSON PARING,其中一个记录中有丢失的项目?

发布于 2025-01-29 20:20:47 字数 2025 浏览 4 评论 0原文

我想知道如何继续一个错误的Alamofire JSON PARING,该paring在JSON的一个记录中有一个缺少的项目?

在记录号61中找不到“ QuotesourCename”。我仍然想继续 解析相同的记录和剩余记录。并在当地对验证进行验证,

 gReq = AF.request(gURL1, parameters: ["quoteResponse": "result"])
            gReq.responseData { (gResponse) in
                    guard let data = gResponse.value else {return}
                    do {
                        let str4 = String(data: data, encoding: .utf8)
                     
                        gQuoteParent11 = try JSONDecoder().decode(QuoteParent.self, from: data)
                        } catch {
                            gEr1 = String(describing: error)

是结构



struct QuoteParent: Codable {
    var quoteResponse: QuoteResponse
    init() {
        quoteResponse = QuoteResponse()
    }
}

struct QuoteResponse: Codable {
    var error: QuoteError?
    var result: [Stock]?
    init() {
        error = nil
        result = []
    }
}

struct QuoteError: Codable {
    var lang: String?
    var description: String?
    var message: String?
    var code: Int?
    init() {
        lang = ""
        description = ""
        message = ""
        code = 0
    }
}

struct Stock: Codable {
    var language = ""
    var region = ""
    var quoteType = ""
    var typeDisp = ""
    var quoteSourceName = ""
    var triggerable : Bool?
    var customPriceAlertConfidence = ""
    var exchange = ""
    var exchangeTimezoneName = ""
    var exchangeTimezoneShortName = ""
    var gmtOffSetMilliseconds : Double?
    var market = ""
    var esgPopulated : Bool?
    var marketState = ""
    var firstTradeDateMilliseconds : Double?
    var priceHint : Int?
    var preMarketTime : Int?
    var preMarketPrice : Double?
    var regularMarketTime : Int?
    var regularMarketPrice : Double
    var fullExchangeName = ""
    var sourceInterval : Int?
    var exchangeDataDelayedBy : Int?
    var tradeable : Bool?
    var symbol = ""
    init() {
        regularMarketPrice = 0.0000001
    }
}


I wanted to know how to continue an errored Alamofire json paring that has a missing item in one of the json's records?

key not found "quoteSourceName" in record number 61 . i still want to continue
parsing the same record and the remaining record . and ill do the validation locally

thank you

 gReq = AF.request(gURL1, parameters: ["quoteResponse": "result"])
            gReq.responseData { (gResponse) in
                    guard let data = gResponse.value else {return}
                    do {
                        let str4 = String(data: data, encoding: .utf8)
                     
                        gQuoteParent11 = try JSONDecoder().decode(QuoteParent.self, from: data)
                        } catch {
                            gEr1 = String(describing: error)

this is the structure



struct QuoteParent: Codable {
    var quoteResponse: QuoteResponse
    init() {
        quoteResponse = QuoteResponse()
    }
}

struct QuoteResponse: Codable {
    var error: QuoteError?
    var result: [Stock]?
    init() {
        error = nil
        result = []
    }
}

struct QuoteError: Codable {
    var lang: String?
    var description: String?
    var message: String?
    var code: Int?
    init() {
        lang = ""
        description = ""
        message = ""
        code = 0
    }
}

struct Stock: Codable {
    var language = ""
    var region = ""
    var quoteType = ""
    var typeDisp = ""
    var quoteSourceName = ""
    var triggerable : Bool?
    var customPriceAlertConfidence = ""
    var exchange = ""
    var exchangeTimezoneName = ""
    var exchangeTimezoneShortName = ""
    var gmtOffSetMilliseconds : Double?
    var market = ""
    var esgPopulated : Bool?
    var marketState = ""
    var firstTradeDateMilliseconds : Double?
    var priceHint : Int?
    var preMarketTime : Int?
    var preMarketPrice : Double?
    var regularMarketTime : Int?
    var regularMarketPrice : Double
    var fullExchangeName = ""
    var sourceInterval : Int?
    var exchangeDataDelayedBy : Int?
    var tradeable : Bool?
    var symbol = ""
    init() {
        regularMarketPrice = 0.0000001
    }
}


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文