gpt4 book ai didi

ios - 在 swift4 中使用 Codable 解析二维数组

转载 作者:行者123 更新时间:2023-11-28 19:29:03 42 4
gpt4 key购买 nike

我需要在 swift 4 中使用 codable 解析二维数组,请告诉我如何去做。以下是我的代码片段

var exclusive = “””
{“list”:[[{“primary_key”:”1",”foreign_key”:”3"},{“primary_key”:”2",”foreign_key”:”10"}],[{“primary_key”:”2",”foreign_key”:”10"},{“primary_key”:”3",”foreign_key”:”22"}]]}
“””

let exeString = try! exclusive.data(using: .utf8)

struct ListStruct : Codable {

struct listStruct :Codable {
let primary_key : Int
let foreign_key : Int
}

let list = [[listStruct]] ()
or
let list = [][listStruct]

}

let listofData = try! JSONDecoder().decode(ListStruct.self, from: exeString!)

最佳答案

三个基本问题

  • primary_keyforeign_key 的值是 String,不是 Int。有一个简单的规则:用双引号括起来的每个 JSON 值都是字符串,即使是 "1""false"

  • 有一个根对象,它是一个包含一个键 list 的字典。

  • data(using: of String does not throw 所以标记为 try 是错误的。


此代码使用 Swift 命名约定,camelCased 以及小写的变量名和大写的结构名

let exeString = """
{"list":[[{"primary_key":"1","foreign_key":"3"},{"primary_key":"2","foreign_key":"10"}],[{"primary_key":"2","foreign_key":"10"},{"primary_key":"3","foreign_key":"22"}]]}
"""

struct Root : Decodable {
let list : [[ListStruct]]
}

struct ListStruct :Codable {

private enum CodingKeys : String, CodingKey {
case primaryKey = "primary_key"
case foreignKey = "foreign_key"
}

let primaryKey : String
let foreignKey : String
}

do {
let data = Data(exeString.utf8)
let result = try JSONDecoder().decode(Root.self, from: data)
print(result.list)
} catch { print(error) }

关于ios - 在 swift4 中使用 Codable 解析二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47966963/

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