Skip to content

Instantly share code, notes, and snippets.

@dankogai
Last active August 29, 2015 14:02
Show Gist options
  • Save dankogai/fc677f9a2b4fd60e6e5e to your computer and use it in GitHub Desktop.
Save dankogai/fc677f9a2b4fd60e6e5e to your computer and use it in GitHub Desktop.
fetch json via URL and dumps it
import Foundation
if C_ARGC < 2 {
println("\(C_ARGV[0]) url")
exit(-1)
}
let url = NSURL.URLWithString(String.fromCString(C_ARGV[1]))
var enc:NSStringEncoding = NSUTF8StringEncoding
var err:NSError?
let content =
NSString.stringWithContentsOfURL(url, usedEncoding:&enc, error:&err)
if err {
NSLog("error: %@", err!)
exit(-1)
}
let json = NSJSONSerialization.JSONObjectWithData(
content.dataUsingEncoding(enc), options:nil, error: &err
)
if err {
NSLog("error: %@", err!)
exit(-1)
}
println(json)
import Foundation
func fetch(u:String) -> String? {
let url = NSURL.URLWithString(u)
var enc:NSStringEncoding = NSUTF8StringEncoding
var err:NSError?
let str:String? =
NSString.stringWithContentsOfURL(url, usedEncoding:&enc, error:&err)
if err { NSLog("error: %@", err!) }
return str
}
class JSON {
class func parse(str:String) -> AnyObject? {
var err:NSError?
let enc = NSUTF8StringEncoding
var obj:AnyObject? = NSJSONSerialization.JSONObjectWithData(
str.dataUsingEncoding(enc), options:nil, error:&err
)
if err { NSLog("error: %@", err!) }
return obj
}
class func stringify(obj:AnyObject) -> String? {
var err:NSError?
let data = NSJSONSerialization.dataWithJSONObject(
obj, options:nil, error:&err
)
if err {
NSLog("error: %@", err!)
return nil
}
return NSString(data:data, encoding:NSUTF8StringEncoding)
}
}
if C_ARGC > 1 {
if let content = fetch(String.fromCString(C_ARGV[1])) {
if let json:AnyObject? = JSON.parse(content) {
println(json)
println(JSON.stringify(json!))
exit(0)
}
}
} else {
println("\(C_ARGV[0]) url")
}
exit(-1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment