2013-07-24 22 views
5

Mam do czynienia z problemem podczas konwersji NSString na NSArray.Jak przekonwertować ciąg JSON na NSArray?

mój ciąg jest:

["Default", "Discipleship", "Faith", "Family", "Hope", 
"Life Building", "Love", "Missions", "Relationships"] 

co chcę zrobić, to elementy (Domyślnie uczniostwa itd.) Z tego łańcucha i umieścić je w NSArray.

Próbowałem wiele, ale nie mógł zrobić to, pomóż Każda pomoc będzie wielki, z góry dzięki

+0

Więc wiesz, że to jest JSON, ale nie znaleźliśmy NSJSONSerialization w dokumentacji? –

Odpowiedz

19

Najpierw przekonwertować ciąg NSData:

NSString* str = @"[\"Default\",\"Discipleship\",\"Faith\",\"Family\",\"Hope\",\"Life Building\",\"Love\",\"Missions\",\"Relationships\"]"; 
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding]; 

Następnie użyć:

NSError *e; 
NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:nil error:&e]; 

Tablica obiekt zawiera elementy tekstu JSON.

+1

To prawdopodobnie poprawna odpowiedź. (Ale musisz uciec z cytatów w pierwszym wierszu, inaczej nie skompiluje się.) –

+0

Dziękuję bardzo ... Hurra ... :) – Aashish1aug

+1

@MartinR Masz rację. Właśnie skopiowałem i wkleiłem ciąg znaków zapytania. Będę edytować, aby to naprawić. –

0

Spróbuj tego, najpierw przyciąć niechcianych charecters, a następnie przekształcić ciąg w tablicy.

NSString * strippedNumber = [yourString stringByReplacingOccurrencesOfString:@"[\"]" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, [val length])]; 
NSArray *array = [strippedNumber componentsSeparatedByString:@","]; 
+0

Thanks a sathvik wiele za odpowiedź, ale znowu mam coś nieodpowiednie jako tablicy: Tablica mam to: tablica jest: :( "[Default", uczniostwa, Wiara, Rodzina, Hope, „Life Building ", Miłość, Misje, " Relacje] " ) – Aashish1aug

0

Wypróbuj to, a do tego potrzeba dodać jsonkit i import josnkit.h w swojej klasie

NSString *responseString = [request responseString] 
JKParseOptionFlags options = JKParseOptionComments | JKParseOptionUnicodeNewlines; 
NSArray *responsArray=[responseString objectFromJSONStringWithParseOptions:options error:nil];