【问题标题】:JSON data ingest and sort for efficent searchJSON 数据摄取和排序以实现高效搜索
【发布时间】:2018-08-29 03:36:03
【问题描述】:

我想要获取类似于以下 JSON 格式的数据,并获取该人的配件列表中的内容,并能够按配件类型进行搜索并让它返回拥有该配件的人的列表。我是否想以某种方式使用 Swift 的 contains 内置函数,这样我就不必构建一个 for 循环来搜索?我是否必须创建为每种配件类型命名的新列表并将用户名附加到它们?如何做到这一点?我真的不知道如何解决这个问题。

[
  {
    "name": "John",  
    "Accessories":["watch","necklace"]
  },
  {
    "name": "James",
    "Accessories":["watch","ring"]
  }
]

【问题讨论】:

    标签: json swift dictionary


    【解决方案1】:

    您可以在 Swift 4 中使用 Decodable 协议。首先,您必须创建一个定义您的 JSON 对象的类

    class MyNewClass: Decodable {
        //Make sure your variable names match the keys in your JSON response
        var name: String!
        var Accessories: [String]!
    }
    

    当您收到 JSON 响应时,使用以下行将 JSON 数据解码为类对象数组并根据搜索条件过滤该数组

    do {
        let objects = try JSONDecoder().decode([MyNewClass].self, from: data)
        let people = obj.filter({ $0.Accessories.contains("WHATEVER") }).map{ $0.name }
        //Here you should have an array of people's name that have that accessory
    } catch {error
        print(error)
    }
    

    【讨论】:

      猜你喜欢
      • 2012-04-26
      • 1970-01-01
      • 2014-07-23
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      相关资源
      最近更新 更多