尝试使用 swiftyJSON 快速解析 JSON
Posted
技术标签:
【中文标题】尝试使用 swiftyJSON 快速解析 JSON【英文标题】:Trying to parse JSON in swift with swiftyJSON 【发布时间】:2016-01-29 19:32:26 【问题描述】:问题是我无法使用我认为正确的代码填充数组,以使用 swiftyJSON 解析 JSON 文件。
以及我不确定我发送请求的过程是否正确。
JSON 格式:这应该简化为它真正代表的内容:具有“字符串”键和字典数组值的字典。然后是一个带有字典值的字符串键。然后是一个字符串,其值为我需要的字符串。
"string1" : [
"string2" :
"string3" : "DataINeed"
]
我的代码
func downloadSecondJSONData(completed: DownloadComplete)
let API_ServerKey = "My API Key"
let URL_Search = "URL Address"
let urlString = "\(URL_Search)"
let url = NSURL(string: urlString)!
Alamofire.request(.GET,url).responseJSON (response) -> Void in
switch response.result
case .Success:
if let value = response.result.value
let json = JSON(value)
if let data = json["string1"]["string2"]["string3"].string
self.dataArray.append(data)
case .Failure(let error):
print(error)
completed()
func printData()
print(self.dataArray.count)
我如何尝试调用这些方法
downloadFirstJSONData () -> () in
self.randomMethod() //data i use with the downloadFirstJSONData is required to use in the downloadSecondJSONData
self.downloadSecondJSONData( () -> () in
self.printData() //check if data has been stored
)
【问题讨论】:
json["string1"][0]["string2"]["string3"].string
【参考方案1】:
看起来你没有在第一个字典之后访问数组。
我想访问第一个对象的安全方法是:
if let array = json["string1"].array,
let firstDict = array.first,
let data = firstDict["string2"]["string3"].string
self.dataArray.append(data)
但我想你也可以使用 SwiftyJSON 做一些变体:
if let data = json["string1"][0]["string2"]["string3"].string
self.dataArray.append(data)
【讨论】:
太棒了。能够使用您发布的第二种方法正常访问。只是忘记了我需要确定我正在访问的数组的哪个索引以上是关于尝试使用 swiftyJSON 快速解析 JSON的主要内容,如果未能解决你的问题,请参考以下文章