Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 存储部分SwiftyJSON_Ios_Json_Uitableview_Swift_Swifty Json - Fatal编程技术网

Ios 存储部分SwiftyJSON

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

我正在使用SwiftyJSON在我用Swift编写的iOS应用程序中处理JSON

我想将JSON对象的一部分存储在一个数组中,以填充UITableView

JSON是:

{"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属性来计算可选数组


希望这有帮助。

我可以发布您的一些代码,或者只是一个示例片段吗?我已经更新了这篇文章,希望这有帮助!