如何在 Swift 中将 JSON 数组解析为数组 [英] How to parse Array of JSON to array in Swift
本文介绍了如何在 Swift 中将 JSON 数组解析为数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试解析如下所示的 JSON
<预><代码>[{人":[杰克",琼斯",摇滚",泰勒",抢"]},{人":[玫瑰",约翰"]},{人":[泰德"]}]到一个数组,结果为:
[ [Jack"、Jones"、Rock"、Taylor"、Rob"]、[Rose"、John"]、[Ted";]]
这是数组的数组.
我尝试使用下面的代码
if let path = Bundle.main.path(forResource: "People", ofType: "json") {让 peoplesArray = 尝试!JSONSerialization.jsonObject(with: Data(contentsOf: URL(fileURLWithPath: path)),选项:JSONSerialization.ReadingOptions()) 作为?[任何对象]对于 peoplesArray 中的人!{打印(人)}}
当我打印people"时我得到 o/p 为
<代码>{人 = (杰克",琼斯",摇滚",泰勒",抢");}{人 = (玫瑰",约翰");}...
当它有People"时我很困惑如何解析重复3次
尝试在 UITableView 中显示我的第一个单元格具有Jack"的内容..抢"和第二个单元格有玫瑰",约翰"第三个单元格为Ted"
请帮助我了解如何实现这一点
解决方案
var peoplesArray:[Any] = [[人们": [杰克",琼斯",岩石",泰勒",抢"]],[人们": [玫瑰",约翰"]],[人们": [泰德"]]]var finalArray:[Any] = []对于 peoplesArray 中的 peopleDict {如果让 dict = peopleDict 作为?[String: Any], let peopleArray = dict["People"] as?[细绳] {finalArray.append(peopleArray)}}打印(finalArray)
输出:
[["Jack", "Jones", "Rock", "Taylor", "Rob"], ["Rose", "John"], ["Ted"]]
在您的情况下,它将是:
if let path = Bundle.main.path(forResource: "People", ofType: "json") {让 peoplesArray = 尝试!JSONSerialization.jsonObject(with: Data(contentsOf: URL(fileURLWithPath: path)), options: JSONSerialization.ReadingOptions()) as?[任何]var finalArray:[Any] = []对于 peoplesArray 中的 peopleDict {如果让 dict = peopleDict 作为?[String: Any], let peopleArray = dict["People"] as?[细绳] {finalArray.append(peopleArray)}}打印(finalArray)}
I'm trying to parse JSON which is like below
[
{
"People": [
"Jack",
"Jones",
"Rock",
"Taylor",
"Rob"
]
},
{
"People": [
"Rose",
"John"
]
},
{
"People": [
"Ted"
]
}
]
to an array which results in:
[ ["Jack", "Jones", "Rock", "Taylor", "Rob"] , ["Rose", "John"], ["Ted"] ]
which is array of arrays.
I tried with code below
if let path = Bundle.main.path(forResource: "People", ofType: "json") {
let peoplesArray = try! JSONSerialization.jsonObject(
with: Data(contentsOf: URL(fileURLWithPath: path)),
options: JSONSerialization.ReadingOptions()
) as? [AnyObject]
for people in peoplesArray! {
print(people)
}
}
when I print "people" I get o/p as
{
People = (
"Jack",
"Jones",
"Rock",
"Taylor",
"Rob"
);
}
{
People = (
"Rose",
"John"
);
}
...
I'm confused how to parse when it has "People" repeated 3 times
Trying to display content in UITableView where my 1st cell has "Jack" .."Rob" and Second cell has "Rose" , "John" and third cell as "Ted"
PLease help me to understand how to achieve this
解决方案
var peoplesArray:[Any] = [
[
"People": [
"Jack",
"Jones",
"Rock",
"Taylor",
"Rob"
]
],
[
"People": [
"Rose",
"John"
]
],
[
"People": [
"Ted"
]
]
]
var finalArray:[Any] = []
for peopleDict in peoplesArray {
if let dict = peopleDict as? [String: Any], let peopleArray = dict["People"] as? [String] {
finalArray.append(peopleArray)
}
}
print(finalArray)
output:
[["Jack", "Jones", "Rock", "Taylor", "Rob"], ["Rose", "John"], ["Ted"]]
In your case, it will be:
if let path = Bundle.main.path(forResource: "People", ofType: "json") {
let peoplesArray = try! JSONSerialization.jsonObject(with: Data(contentsOf: URL(fileURLWithPath: path)), options: JSONSerialization.ReadingOptions()) as? [Any]
var finalArray:[Any] = []
for peopleDict in peoplesArray {
if let dict = peopleDict as? [String: Any], let peopleArray = dict["People"] as? [String] {
finalArray.append(peopleArray)
}
}
print(finalArray)
}
这篇关于如何在 Swift 中将 JSON 数组解析为数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文