首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Swift中提取嵌套Json

如何在Swift中提取嵌套Json
EN

Stack Overflow用户
提问于 2018-05-31 04:33:03
回答 2查看 107关注 0票数 0

如何提取这种类型的嵌套json?

JSON

代码语言:javascript
复制
{  
   "item":{  
      "id":33,
      "title":"Article 5",
      "subtitle":"Tasing  123",
      "body":"Hello world " ,
      "date":"15/04/2013 11:48"
   }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-31 04:54:53

您可以创建可编码的Swift4

代码语言:javascript
复制
struct Items: Codable {
    let item: Item
}

struct Item: Codable {
    let id: Int
    let title, subtitle, body, date: String
}

然后把它和

代码语言:javascript
复制
let items = try? JSONDecoder().decode(Items.self, from: jsonData)

希望能帮上忙

票数 2
EN

Stack Overflow用户

发布于 2018-05-31 05:33:14

这是Codable的另一个示例,但它将date String转换为Date值。这是我最讨厌的事情之一,就我个人而言,你应该避免将日期/时间值作为一个String .别让我开始。

代码语言:javascript
复制
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的最终指南上找到更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50616697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档