2012-11-28 4 views
20

Potrzebuję zapisać dane JSON do pliku przy użyciu Objective-C. Moje dane wygląda mniej więcej tak:Czy mogę zapisać dane JSON do pliku w iOS/Objective-C?

data = { 
    "NrObjects" : "7", 
    "NrScenes" : "5", 
    "Scenes" : [ 
     { "dataType" : "label", "position" : [20, 20, 300, 300], "value" : "Hello" }, 
     { "dataType" : "label", "position" : [20, 60, 300, 300], "value" : "Hi There" } 
    ] 
} 

może uzyskać bardziej złożone niż to, ale to, co muszę wiedzieć, czy mogę to zrobić z Obj-C, czyli utworzyć obiekt tej formie, napisać danych do pliku i odczytać go.

Odpowiedz

27

Istnieje klasa specjalnie stworzona do tego, nazywa się NSJSONSerialization.

Czytasz to tak:

NSArray* jsonResponse = [NSJSONSerialization JSONObjectWithData:theResponse 
                 options:kNilOptions 
                  error:&error]; 

i napisać to tak:

NSData* jsonData = [NSJSONSerialization dataWithJSONObject:userDetails 
                options:kNilOptions 
                error:&error]; 
+3

Wystarczy dodać: ten interfejs API jest dostępny w systemie iOS 5 i nowszych wersjach. – Saurabh

+0

Wielkie dzięki. Nie wiedziałem, że istnieje w Obj-C. Dokładnie tego potrzebowałem. –

+0

@ IIS7Rewrite, jeśli ta odpowiedź jest przydatna, proszę, nie zapomnij oznaczyć jej jako zaakceptowaną, dziękuję. – Pochi

4

napisać:

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:jsonObject]; 
[data writeToFile:path atomically:YES]; 

odczytu:

NSData *data = [NSData dataWithContentsOfFile:path]; 
NSDictionary *jsonObject = [NSKeyedUnarchiver unarchiveObjectWithData:data]; 
Powiązane problemy