2012-09-26 13 views
53
ben bu yöntemi kullandık

için JSON seri hale getirilmiş verileri dönüştürmek için nasıl.
"error: nil" ile ilgili herhangi bir sorun var mı?
Hiçbir URL veya bağlantı yöntemi kullanmıyorum.
Bir json dosyam var ve onu bir tabloda görüntülemek istiyorum.O "JSONObject nesnesi null" baskı oluyor</p> <pre><code>NSDictionary *jsonObject=[NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil]; NSLog(@"jsonObject is %@",jsonObject); </code></pre> <p>, NSDictionary

+0

jsonData'nin nil olmadığını kontrol ettiniz mi? Bir hata açıklaması almak istiyorsanız, bir NSError nesnesini aramaya yönlendirmek isteyebilirsiniz. – onnoweb

+1

Burada cevap bulabilirsiniz [NSJSONSerialization nasıl kullanılır] [1] [1]: http://stackoverflow.com/questions/8356842/how-to-use-nsjsonserialization –

+0

Ivan Dyachenko @ i de aynı şeyi yaptım ..... "NSError * myerror = nil; sonra" error: & myerror; "bile null aldım ...... – Rajesh

cevap

146

aşağıdaki kodu deneyin lütfen.

NSData to NSDictionary

let dictionary:NSDictionary = NSKeyedUnarchiver.unarchiveObjectWithData(jsonData)! as NSDictionary 

NSData to NSString

let resstr = NSString(data: res, encoding: NSUTF8StringEncoding) 
+4

çalıştı thanq –

+0

, hızlı 3.0 Dil için bana aynı kodu sağlayabilirsiniz. ??? @amitsoni –

-1

Kontrol this link ben bu size yardımcı olacaktır eminim. Ancak bu sadece ios 5 üzerinde çalışacaktır. ios 5 veya üstü kullandığınızdan emin olun.

+5

Lütfen bunun neden yardımcı olacağını söyleyin - lütfen sadece bir bağlantı vermeyin. – Mark

+0

Bunu görecekseniz işaretle o zaman, o verileri nasıl ayrıştırdığını ve problemi çözeceğini bilmeye başlayacaksınız. –

+0

rajesh check th yerinde bu size yardımcı olacaktır .. o zaman tarayıcıda URL girmek ve sonra dict alacak veya dizi sonra tüm verileri kopyalayıp yapıştırın –

6

bunu kök elemanı bir sözlük ne de bir dizi ne olduğunu olabilir, senin json girişi mı? Dokümantasyon, bu durumda NSJSONReadingAllowFragments seçeneğini belirtmeniz gerektiğini söylüyor.

#import <Foundation/Foundation.h> 

int main(int argc, char *argv[]) { 
    NSAutoreleasePool *p = [[NSAutoreleasePool alloc] init]; 

    NSData *jsonData = [@"{ \"key1\": \"value1\" }" dataUsingEncoding:NSUTF8StringEncoding]; 
    NSDictionary *jsonObject=[NSJSONSerialization 
      JSONObjectWithData:jsonData 
         options:NSJSONReadingMutableLeaves 
         error:nil]; 
    NSLog(@"jsonObject is %@",jsonObject); 

    [p release]; 
} 

Çıktı:

2012-09-26 16:06:51.610 Untitled[19164:707] jsonObject is { 
    key1 = value1; 
} 
+0

yaptığı aynı şey bro .......... – Rajesh

+0

Bu bağlantıda http://jsonlint.com/ jsonunuz geçerliyse o zaman gösterecektir veya herhangi bir hata varsa null gösterecektir. – Rajesh

8

Sadece durumda herkes hızlı kodunu görmek için burada.

0
NSError* error; 
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 

Bu üst direğin sadece daha kısa ve öz bir versiyonudur:

NSError* error; 
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData 
                options:kNilOptions 
                 error:&error]; 

NSArray* latestLoans = [json objectForKey:@"loans"]; 

NSLog(@"loans: %@", latestLoans); 
İlgili konular