Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to retrieve data from file with SwiftyJSON

I have added a JSON-file to my file-system where the data is structured like this:

{ "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." }

my file-name is stockDict.json and I'm trying to retrieve the data from it by using this code:

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)

But all I get when it prints is nil. What is wrong with my code?

Any suggestions would be appreciated.

like image 477
joseph Avatar asked Feb 28 '15 17:02

joseph


People also ask

What is Swifty Jason?

SwiftyJSON is a library that helps to read and process JSON data from an API/Server. So why use SwiftyJSON? Swift by nature is strict about data types and wants the user to explicitly declare it. This becomes a problem as JSON data is usually implicit about data types.

How do I add SwiftyJSON to Xcode?

Adding SwiftyJSON to the demo project Here's our path: Xcode > ( Xcode project name) > Targets > (Xcode project name). In the General tab, under the Frameworks and Libraries dropdown, we click on + and select Add package dependency. Then, we enter the package Git URL: https://github.com/SwiftyJSON/SwiftyJSON.git.


2 Answers

Did you try with

let json = JSON(data: jsonData) // Note: data: parameter name
println(json["DDD"].string)
like image 54
Teemu Kurppa Avatar answered Oct 12 '22 19:10

Teemu Kurppa


Swift 3/4 version:

let path = Bundle.main.path(forResource: "JSON", ofType: "json")!
let jsonString = try? String(contentsOfFile: path, encoding: String.Encoding.utf8)
let json = JSON(parseJSON: jsonString!)
like image 35
Kristaps Grinbergs Avatar answered Oct 12 '22 19:10

Kristaps Grinbergs