2015-02-12 26 views
7

NSDictionary NSDictionary JSON içeren NSString nasıl dönüştürülür? Ben denedim ancak başarılı olamadıSwift içinde NSDictionary json içeren NSDictionary NSString nasıl dönüştürülür?

//parameters is NSDictionary 

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

Ben hızlı

+0

Sorunuz yanıtlandı: http://stackoverflow.com/questions/6368867/generate-json-string-from-nsdictionary –

+0

NSDictionary Json ile NSstring'i Swift – Gayathri

+0

kullanarak dönüştürmek isteyebilirsiniz. – Gayathri

cevap

14

Aşağıdaki kodu kullanabilirsiniz yılında NSString bu NSDictionary Json dönüştürmek istiyorum:

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

bir NSDictionary göz önüne alındığında, seri hale NSData olarak daha sonra NSString'a dönüştürülür.

dönüşüm yaparak kodu da daha kısaca tekrar yazılabilir

olarak:

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

Orjinal cevap: sırayla söz konusu

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

Not Sözlük çalışmak için serileştirme geçerli JSON anahtarları ve değerleri içermelidir.

+0

Teşekkür ederiz .Its Çalışma – Gayathri

+0

İç içe sözlük için çalışacak mı? –

+0

@EyalBenYehuda, sorunuzun en açık cevabı şöyledir: __just try it__ !! [Dokümantasyon] (https://developer.apple.com/reference/foundation/jumpserialization) okuyarak sahip olabileceğiniz herhangi bir cevabı bulmalısınız, ancak cevap evet, iç içe geçmiş sözlükler ve dizilerle çalışır – Antonio

İlgili konular