This library helps you dealing with NSJSONSerialization
. It has simple methods to convert NSData into a JSON object and to get a JSON object from a file.
If converting the NSData to JSON fails, you'll get a ParsingError.Failed
error.
guard let url = URL(string: "http://httpbin.org/get") else { return }
let request = URLRequest(url: url)
URLSession.shared.dataTask(with: request) { data, _, error in
do {
let json = try data?.toJSON() as? [String : Any]
print(json)
} catch {
// Handle error
}
expectation.fulfill()
}.resume()
{
"args": {},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp;q=0.8",
"Accept-Encoding": "gzip, deflate, sdch",
"Accept-Language": "en-US,en;q=0.8,es;q=0.6,nb;q=0.4",
"Host": "httpbin.org",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36"
},
"origin": "000.00.000.000",
"url": "http://httpbin.org/get"
}
*/
If parsing the JSON fails, you'll get a ParsingError.Failed
error. If the file is not found you'll get a ParsingError.NotFound
error.
For files in the main bundle:
import JSON
var users: Any?
do {
users = try JSON.from("users.json")
} catch {
// Handle error
}
For files in in other bundles (for example Tests file bundle):
import JSON
var users: Any?
do {
users = try JSON.from("users.json", bundle: Bundle(for: Tests.self))
} catch {
// Handle error
}
JSON is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'JSON'
Elvis Nuñez, @3lvis
JSON is available under the MIT license. See the LICENSE file for more info.