在 Swift4 上解析 JSON

安东尼奥格

我正在尝试解析一个简单的 JSON,但我无法理解我做错了什么,这不是我尝试过的唯一代码。我只是 Swift 代码的初学者,正在努力学习。这就是我得到的:

MyThing(feeds: [TempCode.MyThing.Feeds(field1: "19.06")])

这是我的代码。

import Foundation

let data = """
    {
    "channel": {
        "id": 21548,
        "name": "House",
        "field1": "Temperature",
        "field2": "Humidity",
        "updated_at": "2018-02-17T11:10:13Z",
        "last_entry_id": 14878
    },
    "feeds": [
        {
            "created_at": "2018-02-17T11:10:13Z",
            "entry_id": 14878,
            "field1": "19.06",
            "field2": "58.60"
        }
    ]
}
""".data(using: .utf8)!

struct MyThing: Codable {
   let feeds: [Feeds]
   struct Feeds: Codable {
      let field1: String
}
enum CodingKeys : String, CodingKey {
    case feeds
}
}


let decoder = JSONDecoder()
let thingData = try decoder.decode(MyThing.self, from: data)
print(thingData)

我想要实现的是只打印 field1 和 field2 的值。谢谢。

瓦迪安
  • 首先,您还必须添加一个属性来解码 field2
  • 其次,CodingKeys 是多余的,您可以省略它们。
  • 第三,建议以单数形式命名结构。

struct MyThing: Codable {
    let feeds: [Feed]
    struct Feed: Codable {
        let field1: String
        let field2: String
    }
}

仅打印field1field2使用循环遍历feeds数组

for feed in thingData.feeds {
    print(feed.field1, feed.field2)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章