gpt4 book ai didi

arrays - 如何编辑我的函数并添加参数数组?

转载 作者:行者123 更新时间:2023-11-30 10:46:17 27 4
gpt4 key购买 nike

我有 func Json 解码,我如何现代化我的函数并添加参数数组类型我的“模型”数据?

我需要在另一个全局数组中添加所有解码数据“let model”。示例:

let myArray = [Any]()

在我认为添加的函数中

myArray.append(model.Welcome)

我的 JSON 解码代码:

struct Welcome: Codable {
let id: Int
let name, username, email: String
let address: Address
let phone, website: String
let company: Company
}

struct Address: Codable {
let street, suite, city, zipcode: String
let geo: Geo
}

struct Geo: Codable {
let lat, lng: String
}

struct Company: Codable {
let name, catchPhrase, bs: String
}


func userApiJsonCodableClass () {
guard let url = URL(string: "https://jsonplaceholder.typicode.com/users") else {return}
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let dataResponse = data,
error == nil else {
print(error?.localizedDescription ?? "Response Error")
return }

do {
//here dataResponse received from a network request
let decoder = JSONDecoder()
let model = try decoder.decode([Welcome].self, from:
dataResponse) //Decode JSON Response Data
print("---------CodableClass---------")
print(model[0].website) //Output - 1221
} catch let parsingError {
print("Error", parsingError)
}
}
task.resume()
}

最佳答案

首先在此处进行更改:var myArray = [Welcome]()。其次,将您的项目直接收集到数组中: myArray = try detector.decode([Welcome].self, from: dataResponse)//Decode JSON Response Data.

不要忘记在解析错误时清除数组。

var myArray = [Welcome]()

struct Welcome: Codable {
let id: Int
let name, username, email: String
let address: Address
let phone, website: String
let company: Company
}

struct Address: Codable {
let street, suite, city, zipcode: String
let geo: Geo
}

struct Geo: Codable {
let lat, lng: String
}

struct Company: Codable {
let name, catchPhrase, bs: String
}


func userApiJsonCodableClass () {
guard let url = URL(string: "https://jsonplaceholder.typicode.com/users") else {return}
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let dataResponse = data,
error == nil else {
print(error?.localizedDescription ?? "Response Error")
return }

do {
//here dataResponse received from a network request
let decoder = JSONDecoder()


myArray = try decoder.decode([Welcome].self, from:
dataResponse) //Decode JSON Response Data



print("---------CodableClass---------")
print(myArray.first?.website) //Output - 1221
} catch let parsingError {
print("Error", parsingError)
myArray = []
}
}
task.resume()
}

关于arrays - 如何编辑我的函数并添加参数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55703940/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com