Как я могу декодировать этот JSON с Alamofire?
Я хочу напечатать только значение для ключа "User_number"
[
{
"User_fullname": null,
"User_sheba": null,
"User_modifiedAT": "2019-01-31T18:37:02.716Z",
"_id": "5c53404e91fc822c80e75d23",
"User_number": "9385969339",
"User_code": "45VPMND"
}
]
2 ответа
Я полагаю, это какой-то JSON в Data
формат
let data = Data("""
[ { "User_fullname": null, "User_sheba": null, "User_modifiedAT": "2019-01-31T18:37:02.716Z", "_id": "5c53404e91fc822c80e75d23", "User_number": "9385969339", "User_code": "45VPMND" } ]
""".utf8)
Один из способов использования SwiftyJSON
библиотека, но это то, что я не предлагаю, так как вы можете использовать Codable
,
Итак, сначала вам нужно пользовательскую структуру, соответствующую Decodable
(обратите внимание, что эти CodingKeys
здесь, чтобы изменить ключ объекта внутри json на имя свойства вашей структуры)
struct User: Decodable {
let fullname, sheba: String? // these properties can be `nil`
let modifiedAt, id, number, code: String // note that all your properties are actually `String` or `String?`
enum CodingKeys: String, CodingKey {
case fullname = "User_fullname"
case sheba = "User_sheba"
case modifiedAt = "User_modifiedAT"
case id = "_id"
case number = "User_number"
case code = "User_code"
}
}
затем расшифруйте ваш JSON с помощью JSONDecoder
do {
let users = try JSONDecoder().decode([User].self, from: data)
} catch { print(error) }
Итак, теперь у вас есть Data
декодируется как массив вашей пользовательской модели. Так что если вы хотите, вы можете просто убедиться, User
И его number
имущество
let user = users[0]
let number = user.number
Следующий код принимает Data
и сохраняет "User_number" как Int
if let json = try? JSONSerialization.jsonObject(with: Data!, options: []) as! NSDictionary {
let User_number= json["User_number"] as! Int
}