首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用可解码解析JSON

用可解码解析JSON
EN

Stack Overflow用户
提问于 2018-07-12 22:50:17
回答 1查看 64关注 0票数 1

我很难弄清楚如何组合类似的json结果,以便在搜索API时,搜索结果只显示一次特定的药物名称。我在力量方面也遇到了同样的问题。当选择药物时,由于具有不同的包装代码的药物(需要用于确定药物包覆盖范围),多行填充具有相同的强度。有什么想法吗?我不确定是否应该用另一种方式来解析它。

下面是操场上JSON的一个示例:

代码语言:javascript
复制
let json = """
{
"meta": {
  "total": 406
},
"drugs": [
{
   "id": "12547-0204",
   "active_ingredient_strength": "10mg",
   "proprietary_name": "Zyrtec",
   "non_proprietary_name": "Zyrtec"
   "drug_package_ids": [
    "12547-0204-30",
    "12547-0204-32",
    "12547-0204-36"
  ]
   },

{
   "id": "52959-0482",
   "active_ingredient_strength": "10mg",
   "proprietary_name": "Zyrtec",
   "non_proprietary_name": "Zyrtec"
   "drug_package_ids": [
    "52959-0482-01",
    "52959-0482-07",
    "52959-0482-10",
    "52959-0482-15",
    "52959-0482-30"
  ]
   },
{ 
   "id": "54868-5879",
   "active_ingredient_strength": "5; 120mg/1; mg/1",
   "proprietary_name": "ZYRTEC",
   "non_proprietary_name": "Cetirizine Hydrochloride and Pseudoephedrine      
   Hydrochloride",
   "drug_package_ids": [
    "54868-5879-0",
    "54868-5879-00",
    "54868-5879-00"
     ]
   }
  ]
}""".data(using: .utf8)!

struct DrugSearchResponse: Codable {
    let meta: Meta
    let drugs: [Drugs]

    struct Meta: Codable {
        let total: Int
    }
    struct Drugs: Codable {
        let id: String
        let active_ingredient_strength: String
        let proprietary_name: String
        let non_proprietary_name: String
    }
}

let decoder = JSONDecoder()
let results = try! decoder.decode(DrugSearchResponse.self, from: json)
let drugs = results.drugs
for name in drugs {
    print(name.proprietary_name)
}

以下是搜索结果的屏幕截图供参考:

EN

回答 1

Stack Overflow用户

发布于 2018-07-12 23:34:37

您可以筛选自定义数组的内容,并根据任何属性删除重复的值项。

这将除去除第一种药物外所有具有相同专有名称的药物。

代码语言:javascript
复制
let result: [Drugs] = []
result.append(contentsOf: results.drugs.filter { item in
    !result.contains(where: { $0.proprietary_name == item.proprietary_name })
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51315477

复制
相关文章

相似问题

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