如何获得所有级别嵌套json数据的字典?
JSON数据:
{"places":[
{"name":"東京","date":"2005/03/02","transport":"新幹線"},
{"name":"北海道","date":"2006/04/06","transport":"飛行機"}
],
"no_of_person":"4",
"package_name":"日本最高"
}
我代码:
let response: String = "{"places":[{"name":"東京","date":"2005/03/02","transport":"新幹線"},{"name":"北海道","date":"2006/04/06","transport":"飛行機"}],"no_of_person":"4","package_name":"日本最高"}"
let jsonObj = response.data(using: .utf8)!
do {
let items = try JSONSerialization.jsonObject(with: jsonObj, options: []) as! Dictionary<String, Any>
print(items)
} catch {
print(error)
}
终端输出:
["package_name": 日本最高, "places": <__NSArrayI 0x280fde800>(
{
date = "2005/03/02";
name = "U6771U4eac";
transport = "U65b0U5e79U7dda";
},
{
date = "2006/04/06";
name = "U5317U6d77U9053";
transport = "U98dbU884cU6a5f";
}
)
, "no_of_person": 4]
如上面终端输出所示,
- 如何获得"位置"?作为字典而不是数组?
- 还有,我怎样才能保持日文文本原样,就像在"package_name" ?
编辑:更正:我怎么得到"地方"?作为字典的数组?
我认为这将帮助你如果你想使用jsondecoder。
struct SampleData: Codable {
let places: [Place]
let no_of_person: String
let package_name: String
}
struct Place: Codable {
let name: String
let date: String
let transport: String
}
do {
var dataDecoded = try JSONDecoder().decode(SampleData.self, from: data)
} catch {
print("uppsss there is something wrong in decoding: (error)")
}