【问题标题】:separate json content that separated by a comma以逗号分隔的单独 json 内容
【发布时间】: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。

标签: ios json swift3


【解决方案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 的问题在我写答案时发生了变化,他的第一篇文章中没有代码 ;)
  • 是的,我知道,您的回答很好。我只是觉得有必要提醒读者这个事实。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
相关资源
最近更新 更多