2015-03-10 4 views
-1

У меня есть следующие JSON файл:Swift: Разбор JSON файл

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

Как я могу разобрать этот файл JSON в Swift? Мне нужны значения в loc.

+0

Вы могли бы легко найти это, прибегая к помощи "Xcode для NSDictionary JSON" – Arbitur

+0

возможно дубликат [Xcode Разбор Json] (http://stackoverflow.com/questions/26801506/xcode-parse-json) – Arbitur

ответ

-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)) 
+0

является jsonstring NSData ? – ruby4newb

+0

Я не знаю, что вы будете использовать, но для этого примера jsonstring - это, конечно, String. – Arbitur

+0

Пожалуйста, дайте мне цель для downvote, это явно то, о чем просит OP ... – Arbitur

0

У меня есть проблема, что я получаю фатальную ошибку: неожиданно нашел ноль в то время как разворачивание необязательного значения.

Я отправляю 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]} 

Если у меня есть только один файл, он работает. Но с двумя файлами я получаю фатальную ошибку.

+0

кажется, что мой json-файл недействителен json. – ruby4newb

+0

Да, формат неправильный. Проверьте онлайн-инструмент проверки. И для JSON вы вставили просто положить квадратные скобки на начало и конец. –

Смежные вопросы