Ios 存储部分SwiftyJSON
我正在使用SwiftyJSON在我用Swift编写的iOS应用程序中处理JSON 我想将JSON对象的一部分存储在一个数组中,以填充UITableView JSON是:Ios 存储部分SwiftyJSON,ios,json,uitableview,swift,swifty-json,Ios,Json,Uitableview,Swift,Swifty Json,我正在使用SwiftyJSON在我用Swift编写的iOS应用程序中处理JSON 我想将JSON对象的一部分存储在一个数组中,以填充UITableView JSON是: {"error":"","results":[{"id":1,"name":"test","nickname":"T"},{"id":1,"name":"Lorem","nickname":"L"}]} 因此,基本上我需要将“结果”存储在字典或某种描述的数组中,以便在填充表时检索数据 但我似乎无法做到这一点。我似乎无法确定Sw
{"error":"","results":[{"id":1,"name":"test","nickname":"T"},{"id":1,"name":"Lorem","nickname":"L"}]}
因此,基本上我需要将“结果”存储在字典或某种描述的数组中,以便在填充表时检索数据
但我似乎无法做到这一点。我似乎无法确定SwiftyJSON将子对象设置为什么格式
编辑:为了说明这个问题,我添加了一个精简版的代码。我故意不在searchResults上设置任何类型,也不处理json[results],因为我不确定最佳类型
import UIKit
import SwiftHTTP
import SwiftyJSON
class SearchTableViewController: UITableViewController {
var searchResults
func loadSearchResults(){
var request = HTTPTask()
let params: Dictionary<String,AnyObject> = [
"request": "search"
]
request.responseSerializer = JSONResponseSerializer()
request.GET("....", parameters: params, success: {(response: HTTPResponse) in
NSOperationQueue.mainQueue().addOperationWithBlock {
searchResults = json["results"]
}
},failure: {(error: NSError, response: HTTPResponse?) in
NSOperationQueue.mainQueue().addOperationWithBlock {
println("Error.")
}
})
}
}
在使用SwiftyJSON的所有应用程序中,我尝试执行以下操作:
if let title = searchResult[index]["show"]["name"].stringValue {
newShow.name = title
}
无论何时存储JSON响应的一部分,请始终尝试将其作为正确的值。我只能不鼓励将完整的子blob存储在变量中,因为这将使以后的工作和解析更加困难。在我看来,您可以使用SwiftyJSON本身的数组扩展提供的计算属性访问SwiftyJSON下面的内容 例如,您可以分别使用JSON类型的数组、arrayValue或arrayObject访问可选的[JSON]、非可选的[JSON]或[AnyObject] 在我的一个项目中,我在TableView控制器中声明了一个POST数组:
var postsArray : [Post]?
Post是我自己的模型对象。稍后,我将使用上面列出的属性之一填充此数组
self.postsArray = persistInMem(jsonPosts.arrayValue)
请注意,jsonPosts是我使用SwiftyJSON远程获得的JSON对象。persistInMem只是一个将我的JSON数组映射到Post对象数组的函数。这里唯一需要注意的是,我确信JSON类型的jsonPosts实际上是一个数组,否则就意味着我不确定是否应该使用SwiftyJson的Array属性来计算可选数组
希望这有帮助。我可以发布您的一些代码,或者只是一个示例片段吗?我已经更新了这篇文章,希望这有帮助!