【问题标题】:CREATE JSON SWIFTYJSON创建 JSON SWIFTYJSON
【发布时间】:2020-05-10 06:49:05
【问题描述】:

我正在尝试创建这样的 json

[
 {"key": "value"},
 {"key": "value"},
 {"key": "value"}
]

这是我的代码

var array: JSON = []
    for i in (0..<obj.count){
        array = [
            "user": obj[i].name!,
            "apikey": obj[i].key!
        ]
    }

但是当我尝试打印时,只有第一个项目, 我该如何解决这个问题

【问题讨论】:

  • 使用array.append ...
  • 它没有附加

标签: swift xcode swift4 swifty-json


【解决方案1】:

使用Codable。由于 Swift 4 SwiftyJSON 已经过时了

struct Object : Encodable {
    private enum CodingKeys : String, CodingKey { case name  = "user", key = "apikey" }
    let name, key : String
}

let obj = [Object(name: "Foo", key: "API123"), Object(name: "Bar", key: "API456")]

do {
    let jsonData = try JSONEncoder().encode(obj)
    let jsonString = String(data: jsonData, encoding: .utf8)!
    print(jsonString)
} catch { print(error) }

【讨论】:

  • 如何填充 for 循环?
  • 有趣的是你不需要循环,只需编码你的obj数组。
  • 如果我有 20 个项目会发生什么情况?var obj 是什么类型?
  • 20 或 100 无关紧要。与您的 obj 数组相同的类型。您已在结构中采用 Encodable 并添加 CodingKeys
  • 我终于明白了你的代码,是正确的答案 thaaaaaaaanks
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-18
  • 2017-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多