-1

我有以下 JSON 文件:

{ "_id" : { "$oid" : "54feffe1412807551c90eaa2"} , "loc" : [ 35.09 , 12.01]},
{ "_id" : { "$oid" : "54ff0b62412807551c90eaa4"} , "loc" : [ 43.98 , 12.34]}

如何在 Swift 中解析这个 JSON 文件?我需要 loc 中的值。

4

2 回答 2

0

我有一个问题,我收到一个致命错误:在展开可选值时意外发现 nil。

我向我的服务器发送一个 http 请求。像这样

        NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {(response, data, error) in
        if error == nil {
            var datastring:String = NSString(data:data, encoding:NSUTF8StringEncoding)!
//          println(datastring)

            if (data != nil) {
                var json=NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: &self.err) as NSDictionary
                println(json)

                if (error != nil) {
                    println(self.err?.localizedDescription)
                } else {
                  //do something here with json
                    }
                }
            } else {
                println(error.localizedDescription)
            }

并获取此 json 文件:

{ "_id" : { "$oid" : "54feffe1412807551c90eaa2"} , "loc" : [ 35.09 , 12.01]},
{ "_id" : { "$oid" : "54ff0b62412807551c90eaa4"} , "loc" : [ 43.98 , 12.34]}

如果我只有一个文件,它可以工作。但是有两个文件我得到了致命的错误。

于 2015-03-11T00:07:37.300 回答
-1

使用NSJSONSerialization

func ParseJSONData(data: NSData) -> NSDictionary? {
    if let dict = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as? NSDictionary { return dict }

    println("Failed to parse")
    return nil
}

// *********************

if let info = ParseJSONData(jsonstring.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false))
于 2015-03-10T23:50:32.653 回答