如何提取这种类型的嵌套json?
JSON
{
"item":{
"id":33,
"title":"Article 5",
"subtitle":"Tasing 123",
"body":"Hello world " ,
"date":"15/04/2013 11:48"
}
}发布于 2018-05-31 04:54:53
您可以创建可编码的Swift4
struct Items: Codable {
let item: Item
}
struct Item: Codable {
let id: Int
let title, subtitle, body, date: String
}然后把它和
let items = try? JSONDecoder().decode(Items.self, from: jsonData)希望能帮上忙
发布于 2018-05-31 05:33:14
这是Codable的另一个示例,但它将date String转换为Date值。这是我最讨厌的事情之一,就我个人而言,你应该避免将日期/时间值作为一个String .别让我开始。
struct Item: Codable {
let id: Int
let title: String
let subtitle: String
let body: String
let date: Date
}
struct ItemList: Codable {
let item: Item
}
let formatter = DateFormatter()
// 15/04/2013 11:48
formatter.dateFormat = "dd/MM/yyyy HH:mm"
formatter.locale = Locale(identifier: "en_US_POSIX")
// May want to include the timezone, since it's unspecified
// yet another pet hate
let jsonString = """
{
"item":{
"id":33,
"title":"Article 5",
"subtitle":"Tasing 123",
"body":"Hello world " ,
"date":"15/04/2013 11:48"
}
}
"""
let jsonData = Data(jsonString.utf8)
do {
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .formatted(formatter)
let items = try decoder.decode(ItemList.self, from: jsonData)
items.item.id
items.item.title
items.item.subtitle
items.item.body
items.item.date
} catch let error {
print(error)
}您可以在使用Swift 4解析JSON的最终指南上找到更多信息。
https://stackoverflow.com/questions/50616697
复制相似问题