首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >快速解析双JSON编码数组并访问它

快速解析双JSON编码数组并访问它
EN

Stack Overflow用户
提问于 2015-05-15 15:57:56
回答 2查看 635关注 0票数 1

我需要解析来自JSON的数组中的10个数组,然后才能对其进行快速访问。我可以通过REST获取数据并在控制台上打印出来,但我不知道如何将其实际保存到处理中。

JSON阵列结构:

代码语言:javascript
运行
复制
[[lol_id, lol_time, lol_uid, lol_username, lol_type, lol_url, lol_title, lol_score, lol_comments, lol_badge], 
[lol_id, lol_time, lol_uid, lol_username, lol_type, lol_url, lol_title, lol_score, lol_comments, lol_badge], 
[lol_id, lol_time, lol_uid, lol_username, lol_type, lol_url, lol_title, lol_score, lol_comments, lol_badge], 
[lol_id, lol_time, lol_uid, lol_username, lol_type, lol_url, lol_title, lol_score, lol_comments, lol_badge], 
[lol_id, lol_time, lol_uid, lol_username, lol_type, lol_url, lol_title, lol_score, lol_comments, lol_badge], 
[lol_id, lol_time, lol_uid, lol_username, lol_type, lol_url, lol_title, lol_score, lol_comments, lol_badge], 
[lol_id, lol_time, lol_uid, lol_username, lol_type, lol_url, lol_title, lol_score, lol_comments, lol_badge], 
[lol_id, lol_time, lol_uid, lol_username, lol_type, lol_url, lol_title, lol_score, lol_comments, lol_badge], 
[lol_id, lol_time, lol_uid, lol_username, lol_type, lol_url, lol_title, lol_score, lol_comments, lol_badge], 
[lol_id, lol_time, lol_uid, lol_username, lol_type, lol_url, lol_title, lol_score, lol_comments, lol_badge]]

这些数组基本上返回整数和字符串。

如何将它们保存在相同的样式(数组中的数组)并访问它们?

下面是我到现在为止的代码:

代码语言:javascript
运行
复制
@IBAction func buttonLoad(sender: AnyObject) {

    // Setting up the URL 
    let myUrl = NSURL(string: "http://hugelol.com/api/front.php");

    // Request 
    let request = NSMutableURLRequest(URL:myUrl!);
    request.HTTPMethod = "POST";

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
        data, response, error in

        if error != nil
        {
            println("error=\(error)")
            return
        }

        // Prints server response
        println("response = \(response)")

        // Prints the double array 
        let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
        println("responseString = \(responseString)")
    }
    task.resume()
}

我尝试过许多不同的方法,但很难理解如何做到这一点。我也尝试过swiftyJSON,但我仍然不知道如何将数据保存到一个快速数组中。我差点把头撞到墙上。感谢您的阅读。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-15 17:36:41

这部分代码应该为您提供预期的结果。

代码语言:javascript
运行
复制
....

    // Setting up the URL
    let myUrl = NSURL(string: "http://hugelol.com/api/front.php");

    // Request
    let request = NSMutableURLRequest(URL:myUrl!);
    request.HTTPMethod = "POST";

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
        data, response, error in

        if error != nil
        {
            println("error=\(error)")
            return
        }

        if let jsonString = JSON(data: data).rawString() as String? {
            if let dataFromString = jsonString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) {
                let json = JSON(data: dataFromString)
// uncomment necessary access method                   
//                    for (index: String, subJson: JSON) in json {
//                        println("Arr = \(subJson)")
//                    }
// OR
//                    println(json[0][0])

            }
        }
    }

    task.resume()        

……

票数 0
EN

Stack Overflow用户

发布于 2015-05-15 16:19:37

尝试使用NSJSONSerialization。它将解析JSON并返回一个NSObject树。

代码语言:javascript
运行
复制
if let result: AnyObject = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(0), error: nil) {...}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30263874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档