2015-02-12 16 views
7

Come convertire NSDictionary in NSString che contiene JSON di NSDictionary? Ho provato ma senza successoCome convertire NSDictionary in NSString che contiene json di NSDictionary in Swift?

//parameters is NSDictionary 

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

voglio convertire questo NSDictionary JSON per NSString in rapida

+0

La tua domanda ha avuto una risposta: http://stackoverflow.com/questions/6368867/generate-json-string-from-nsdictionary –

+0

voglio convertire NSDictionary Json in NSstring usando Swift – Gayathri

+0

puoi aiutarci? – Gayathri

risposta

14

È possibile utilizzare il seguente codice:

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) 
    } 
} 

Dato un NSDictionary, esso viene serializzato come NSData , quindi convertito in NSString.

Il codice facendo la conversione può anche essere riscritta in modo più conciso come:

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") 
    } 

risposta originale:

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

Nota che, per la serializzazione per il lavoro del dizionario deve contenere chiavi e valori JSON validi.

+0

Grazie. Il suo lavoro – Gayathri

+0

funzionerà per il dizionario annidato? –

+0

@EyalBenYehuda la risposta più ovvia alla tua domanda è: __attalo! Dovresti trovare le risposte che potresti avere leggendo [la documentazione] (https://developer.apple.com/reference/foundation/jsonserialization), ma la risposta è sì, funziona con dizionari e array nidificati – Antonio

Problemi correlati