以逗号分隔的单独 json 内容

Posted

技术标签:

【中文标题】以逗号分隔的单独 json 内容【英文标题】:separate json content that separated by a comma 【发布时间】:2017-08-14 13:52:17 【问题描述】:

我正在 swift 3 中解析 json 数据。这是结果的结构。 我需要把这个带括号的内容分开并放入一个数组中。

 (
     
        name:"devin,patrick";
    
       ,

   
        name:"devin,kalvin";
   
      ,

   
       name: "devin,nic";
   

)

这是代码,

 //parsing json data

                if let jsonparsed = content as? NSDictionary 

                    if let neededData = jsonparsed["data"] 

                        print(neededData)

                        let exactData = String(describing:neededData)
                 let gotData = exactData.components(separatedBy: ",")



                    
                

我将数据转换为字符串并尝试用逗号分隔内容,它不起作用,因为名称也有逗号,我需要分隔用逗号覆盖的内容,任何帮助都会很棒。

【问题讨论】:

那么你已经解析了JSON,你只需要把nameString里面的值分开? 是的,我需要分隔包含名称字符串的内容,我正在尝试创建和排列并生成表格视图。我想不出如何分离这些内容。 永远不要修改/解析 JSON 字符串,这不是它的工作方式。相反,使用 JSONSerialization 将 JSON 正确转换为其对应对象。 请在对它进行任何解析之前包含您的实际 JSON 响应,只是您使用 JSONSerialization.jsonObject 获得的 jsonObject。也不要在 Swift 中使用 NSDictionary,使用它的原生 Swift 对应物 Dictionary。也不要使用String(describing:...) 将任何数据解析为String,因为如果对象符合CustomStringConvertible,它与object.description 的作用相同,这不是您通常需要的,而且绝对是您解析所需要的JSON。 这是我使用的网址:dl.dropboxusercontent.com/s/juvmwf45zmn1kqt/hetels.json 【参考方案1】:

序列化你的json字符串后,得到一个字典列表,得到每个字典的名字,然后用componentsSeparatedBy yo得到每个名字

   if let data = text.data(using: .utf8) ,
        let dict = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: String]

        let array = dict.flatMap($0["name"]) //return ["devin,patrick", "devin,kalvin", "devin,nic"]
        let names = array.flatMap($0.components(separatedBy: ",")) //return ["devin" ,"patrick" ,"devin" ,"kalvin" ,"devin" ,"nic"]
        let uniqueNames = Set(names) // return ["nic", "patrick", "devin", "kalvin"]
    

【讨论】:

是但是:You need to serialize your json string 实际上 OP 已经有了 JSON 数据,因为它们向我们展示了一个打印的对象。不需要做数据 -> 字符串 -> 数据,他们应该只使用原始数据... @Moritz True 但是 Olivier 的问题在我写答案时发生了变化,他的第一篇文章中没有代码 ;) 是的,我知道,您的回答很好。我只是觉得有必要提醒读者这个事实。 :)

以上是关于以逗号分隔的单独 json 内容的主要内容,如果未能解决你的问题,请参考以下文章

SQL Query 以逗号分隔获取 Json 内部的 Json 值

在 React Native 中呈现逗号分隔的值字符串

我可以使用 SQL 将存储为 CSV(逗号分隔值)的表列的内容拆分为新表中的单独行吗?

SQL:使用 SQL 将两个逗号分隔的字符串拆分为单独的索引行

将逗号分隔的字符串转换为单独的行

javascript 以逗号截取字符