以逗号分隔的单独 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,你只需要把name
String里面的值分开?
是的,我需要分隔包含名称字符串的内容,我正在尝试创建和排列并生成表格视图。我想不出如何分离这些内容。
永远不要修改/解析 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 值
我可以使用 SQL 将存储为 CSV(逗号分隔值)的表列的内容拆分为新表中的单独行吗?