【发布时间】:2019-09-23 15:01:22
【问题描述】:
我收到来自 API 的响应,其中包含动态字段。
[{"details": { "amount": "11"},
"wallet":"MAIN"},
{"details": { "bonus": "12"},
"wallet":"POKER"}]
我希望能够访问每个对象的 ,,details`` 字段。 我试过了
if let jsonObject = try JSONSerialization.jsonObject(with: data, options: []) as? Array<[String: Any]> {
completion(.success(jsonObject))}
【问题讨论】:
-
您可以将 details 对象建模为一个符合 decodable 的结构,并使用
let amount: Int?和let bonus: Int?等可选成员,然后使用JSONDecoder.decode方法。 -
“details”的内容有多动态,它可以包含多个值还是只有一个键/值对?值的类型总是字符串吗?
-
@JoakimDanielson,它可以包含许多值,但类型始终是字符串。该解决方案必须能够处理新字段(如果要添加),而无需更改代码
标签: arrays swift api dictionary completion