JSON 解析后访问结构数据,Swift

Access struct data after JSON parse, Swift

我坚持以下几点: 我 运行 这个代码

AF.request(url, method: .get).responseDecodable(of: UserInfo.self) { response in
        debugPrint(response)
    }

然后我将 JSON 解析为这个结构:

struct UserInfo: Codable {
let totalCount: Int
let incompleteResults: Bool
let items: [Item]

enum CodingKeys: String, CodingKey {
    case totalCount = "total_count"
    case incompleteResults = "incomplete_results"
    case items
}}

struct Item: Codable {

let id: Int
let userName: String

enum CodingKeys: String, CodingKey {
    case id
    case userName = "userName"
}}

例如,我如何访问用户名字段?

该结构在我的 class 之外,我想将其归档到另一个 .swift 文件

非常感谢!

您想要使用的是一个回调,将数据发送回调用 networkRequestFunction 的函数。

  func makeRequest() {
            someRequest(url: "thisURL") { (userInfo, error) in
                guard let userInfo = userInfo else {
                    // present error
                    return
                }

                // Now you have your userStruct
                print(userInfo)
            }
        }


        func someRequest(url: String, callback: @escaping ((UserInfo?, AFError?) -> ())) {
                AF.request(url, method: .get).responseDecodable(of: UserInfo.self) { response in
                    switch response.result {
                    case .success(let info):
// This is where i missed that you already had decoded it, no need to guard let here
                        callback(info, nil)
                    case .failure(let error):
                        callback(nil, error)
                    }
            }
        }