swiftyJSON 从 NSURL 解析 json

Posted

技术标签:

【中文标题】swiftyJSON 从 NSURL 解析 json【英文标题】:swiftyJSON parsing json from NSURL 【发布时间】:2015-08-26 16:12:08 【问题描述】:

我会请求一些帮助..

我有一个尝试从 url 获取 json 数据的函数。我正在使用 SwiftyJSON。

这是我的功能:

  func getDataFromUpc(Code: String) 
        print("called getdata")
        let urlString = "http://api.upcdatabase.org/json/mykey/" + Code
         print(urlString)
        let url = NSURL(string: urlString)

        let data = NSData(contentsOfURL: url!)

        let json = JSON(data!)

        print(json)
        print(json["description"])
        self.alert(json["description"].stringValue)


    

当我尝试在控制台上打印 json 对象时,我可以看到: 未知

当我尝试打印 json["description"] 时它为零。

如果我尝试用我的浏览器调用我的 url,它可以正常工作,我会返回 json 响应。

谁能帮我解决我做错了什么?

非常感谢!

【问题讨论】:

data 为零吗?如果不是,像let dataString = NSString(data: data, encoding: NSUTF8StringEncoding) 这样的字符串是什么样的? 这不是空的,所以如果我这样做:让 dataString = NSString(data: data!, encoding: NSUTF8StringEncoding) print(dataString) 我可以看到完整的 json 响应.. 但我如何参考json [“描述”] 例如..? :) 谢谢你.. 我阅读了 swifty json 的规范,并用这个: if let dataFromString = jsonString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) let json = JSON(data: dataFromString) 它的工作.. :) 谢谢! 也许在使用 Swifty JSON(或任何第三方代码)时要做的第一件事就是“阅读规范”。 【参考方案1】:

swiftyJSON 不适用于 URL,swiftJSON 可以完美地处理本地数据

这是一个教程,你可以看到更多了解 swiftJSON

https://www.youtube.com/watch?v=_NfijT6mt6A

要解析来自网络的 JSON,您需要这样做...

https://www.youtube.com/watch?v=r-LZs0De7_U

【讨论】:

以上是关于swiftyJSON 从 NSURL 解析 json的主要内容,如果未能解决你的问题,请参考以下文章

使用 SwiftyJSON 解析 JSON 响应而不会崩溃

在 Haneke 和 SwiftyJSON 之间转换 JSON

如何从 JSON 数组 SwiftyJSON 中获取数据?

JSON 数组 Swift 的索引

iOS:从 Alamofire 解析的 SwiftyJSON 是一个数组。尝试解析时为空

使用 swiftyJSON/swift 从 Firebase 解析排行榜数据