可以获取Alamofire Xcode Json Parse上的Yahoo API
我无法让Alamofire在Xcode上工作。我正在尝试json parse yahoo api,但它行不通。开始,我想在“ struct stock:codable”的“符号”中解析并打印一个元素,
这
import UIKit
import SwiftUI
import UserNotifications
import Alamofire
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 : String?
var region : String?
var quoteType : String?
var typeDisp : String?
var quoteSourceName : String?
var triggerable : String?
var customPriceAlertConfidence : String?
var exchange : String?
var exchangeTimezoneName : String?
var exchangeTimezoneShortName : String?
var gmtOffSetMilliseconds : String?
var market : String?
var esgPopulated : String?
var marketState : String?
var firstTradeDateMilliseconds : String?
var priceHint : String?
var preMarketTime : String?
var preMarketPrice : String?
var regularMarketTime : String?
var regularMarketPrice : String?
var fullExchangeName : String?
var sourceInterval : String?
var exchangeDataDelayedBy : String?
var tradeable : String?
var symbol : String?
}
是我的代码。 在jsondecoder系列中,这让我陷入错误,
谢谢
let url = "https://query1.finance.yahoo.com/v7/finance/quote?lang=en-US®ion=US&corsDomain=finance.yahoo.com&symbols=FB"
var quoteParent = QuoteParent()
let req = AF.request(url, parameters: ["quoteResponse": "result"])
req.responseData { (response) in
guard let data = response.value else {return}
do {
quoteParent = try JSONDecoder().decode(QuoteParent.self, from: data)
let stock = quoteParent.quoteResponse.result?[0]
let symbol = stock?.symbol?.uppercased() ?? ""
print(symbol)
} catch {
print(error)
}
}
I can't get alamofire to work on Xcode. I'm trying to json parse yahoo API and it won't work . for start i jut wanted to parse and print one element in of "struct Stock: Codable " which is "symbol"
any help would be appreciated
import UIKit
import SwiftUI
import UserNotifications
import Alamofire
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 : String?
var region : String?
var quoteType : String?
var typeDisp : String?
var quoteSourceName : String?
var triggerable : String?
var customPriceAlertConfidence : String?
var exchange : String?
var exchangeTimezoneName : String?
var exchangeTimezoneShortName : String?
var gmtOffSetMilliseconds : String?
var market : String?
var esgPopulated : String?
var marketState : String?
var firstTradeDateMilliseconds : String?
var priceHint : String?
var preMarketTime : String?
var preMarketPrice : String?
var regularMarketTime : String?
var regularMarketPrice : String?
var fullExchangeName : String?
var sourceInterval : String?
var exchangeDataDelayedBy : String?
var tradeable : String?
var symbol : String?
}
here is my code
at the JSONDecoder line it throw me to catch error
thank you
let url = "https://query1.finance.yahoo.com/v7/finance/quote?lang=en-US®ion=US&corsDomain=finance.yahoo.com&symbols=FB"
var quoteParent = QuoteParent()
let req = AF.request(url, parameters: ["quoteResponse": "result"])
req.responseData { (response) in
guard let data = response.value else {return}
do {
quoteParent = try JSONDecoder().decode(QuoteParent.self, from: data)
let stock = quoteParent.quoteResponse.result?[0]
let symbol = stock?.symbol?.uppercased() ?? ""
print(symbol)
} catch {
print(error)
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试使用可响应的启用,而是
用正确的数据类型声明结构属性
,结果为
“ fb”
Try to use responseDecodable instead,
Declare the struct properties with the correct data type
And the result is
"FB"