10

我在我的文件系统中添加了一个 JSON 文件,其中数据的结构如下:

{ “DDD”:“3D Systems Corporation”,“MMM”:“3M 公司”,“WBAI”:“500.com Limited”,“WUBA”:“58.com Inc.”,“AHC”:“AH Belo Corporation”、“ATEN”:“A10 Networks, Inc.”、“AAC”:“AAC Holdings, Inc.”、“AIR”:“AAR Corp.” }

我的文件名是stockDict.json,我正在尝试使用以下代码从中检索数据:

let jsonFilePath:NSString = NSBundle.mainBundle().pathForResource("stockDict", ofType: "json")!
        let jsonData:NSData = NSData.dataWithContentsOfMappedFile(jsonFilePath as String) as! NSData
        let error:NSError?
        let json = JSON(jsonData)

        println(json[0][0].string)

但是当它打印出来时我得到的只是nil. 我的代码有什么问题?

任何建议,将不胜感激。

4

3 回答 3

13

你试过了吗

let json = JSON(data: jsonData) // Note: data: parameter name
println(json["DDD"].string)
于 2015-02-28T17:34:47.057 回答
7

斯威夫特 3/4 版本:

let path = Bundle.main.path(forResource: "JSON", ofType: "json")!
let jsonString = try? String(contentsOfFile: path, encoding: String.Encoding.utf8)
let json = JSON(parseJSON: jsonString!)
于 2017-09-19T10:17:37.597 回答
6

我没有代表发表评论,但从 iOS 8 开始,此答案已被弃用,特别是以下部分。

.dataWithContentsOfMappedFile

XCode 告诉我。

'dataWithContentsOfMappedFile' was deprecated in iOS 8.0: Use +dataWithContentsOfURL:options:error: and NSDataReadingMappedIfSafe or NSDataReadingMappedAlways instead.

- - - 编辑 - - - -

这是我正在使用的更新代码。它以 iOS 9.1 为目标编译和运行。

let path = NSBundle.mainBundle().pathForResource("fileName", ofType: "json")
let jsonData = NSData(contentsOfFile:path!)
let json = JSON(data: jsonData!)
于 2015-11-13T03:14:49.420 回答