2015-02-12 12 views
7

Jak przekonwertować NSDictionary na NSString, który zawiera JSON z NSDictionary? Próbowałem, ale bez powodzeniaJak przekonwertować NSDictionary na NSString, który zawiera json z NSDictionary w Swift?

//parameters is NSDictionary 

let jsonData:NSDictionary = NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers , error: &error) as NSDictionary 

chcę przekonwertować ten NSDictionary JSON do NSString w szybki

+0

Twoje pytanie zostało wysłuchane: http://stackoverflow.com/questions/6368867/generate-json-string-from-nsdictionary –

+0

Chcę przekonwertować NSDictionary Json na NSstring używając Swift – Gayathri

+0

czy możesz pomóc w tym? – Gayathri

Odpowiedz

14

można użyć następującego kodu:

var error: NSError? 
var dict: NSDictionary = [ 
    "1": 1, 
    "2": "Two", 
    "3": false 
] 

let data = NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions.PrettyPrinted, error: &error) 

if let data = data { 
    let json = NSString(data: data, encoding: NSUTF8StringEncoding) 
    if let json = json { 
     println(json) 
    } 
} 

otrzymał NSDictionary, jest szeregowane jako NSData , a następnie przekonwertowane na NSString.

Kod robi konwersję może być również przepisany bardziej zwięźle:

Swift 3:

do { 
     let jsonData = try JSONSerialization.data(withJSONObject: data) 
     if let json = String(data: data, encoding: .utf8) { 
      print(json) 
     } 
    } catch { 
     print("something went wrong with parsing json") 
    } 

Oryginalny odpowiedź:

if let data = NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions.PrettyPrinted, error: &error) { 
    if let json = NSString(data: data, encoding: NSUTF8StringEncoding) { 
     println(json) 
    } 
} 

Należy zauważyć, że w celu serializacja do pracy w słowniku musi zawierać poprawne klucze i wartości JSON.

+0

. Dziękuję. Czy działa – Gayathri

+0

będzie działać dla zagnieżdżonego słownika? –

+0

@EyalBenYehuda najbardziej oczywistą odpowiedzią na twoje pytanie jest: __próbuj tego! Powinieneś znaleźć dowolną odpowiedź, czytając [dokumentację] (https://developer.apple.com/reference/foundation/jsonserialization), ale odpowiedź brzmi "tak", działa z zagnieżdżonymi słownikami i tablicami – Antonio