如何使用 SwiftyJSON 从文件中检索数据
How to retrieve data from file with SwiftyJSON
我在我的文件系统中添加了一个 JSON 文件,其中的数据结构如下:
{ "DDD" : "3D Systems Corporation", "MMM" : "3M Company", "WBAI" :
"500.com Limited", "WUBA" : "58.com Inc.", "AHC" : "A.H. 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
。我的代码有什么问题?
如有任何建议,我们将不胜感激。
你尝试过
let json = JSON(data: jsonData) // Note: data: parameter name
println(json["DDD"].string)
我没有代表发表评论,但从 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!)
Swift 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!)
我在我的文件系统中添加了一个 JSON 文件,其中的数据结构如下:
{ "DDD" : "3D Systems Corporation", "MMM" : "3M Company", "WBAI" : "500.com Limited", "WUBA" : "58.com Inc.", "AHC" : "A.H. 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
。我的代码有什么问题?
如有任何建议,我们将不胜感激。
你尝试过
let json = JSON(data: jsonData) // Note: data: parameter name
println(json["DDD"].string)
我没有代表发表评论,但从 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!)
Swift 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!)