2013-07-24 48 views
5

Tôi đang gặp phải sự cố khi chuyển đổi NSString thành NSArray.Làm thế nào để chuyển đổi một chuỗi JSON thành một NSArray?

chuỗi của tôi là:

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

gì tôi muốn làm là có được các yếu tố (Mặc định, môn đồ vv) ra khỏi chuỗi này và đặt chúng vào một NSArray.

Tôi đã cố gắng rất nhiều nhưng không thể làm cho nó thực hiện, xin vui lòng giúp Bất kỳ trợ giúp sẽ là tuyệt vời, cảm ơn trước

+0

Vì vậy, bạn biết rằng nó là JSON nhưng bạn không tìm thấy NSJSONSerialization trong tài liệu? –

Trả lời

19

Trước tiên, bạn chuyển đổi chuỗi của bạn để NSData:

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

Sau đó, bạn sử dụng:

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

Mảng đối tượng chứa các yếu tố của văn bản JSON.

+1

Đây có thể là câu trả lời đúng. (Nhưng bạn phải thoát khỏi các dấu ngoặc kép trong dòng đầu tiên, nếu không nó sẽ không biên dịch.) –

+0

Thankyou rất nhiều ... Hurray ... :) – Aashish1aug

+1

@MartinR Bạn nói đúng. Tôi chỉ sao chép và dán chuỗi câu hỏi. Tôi sẽ chỉnh sửa để làm cho nó đúng. –

0

thử như thế này, trước tiên cắt các phần tử không mong muốn và sau chuỗi conver đó thành mảng.

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

Cảm ơn sathvik rất nhiều cho câu trả lời, nhưng một lần nữa tôi đã nhận một cái gì đó không phù hợp như một mảng: mảng tôi đã nhận là: mảng là: :( "[Default", môn đồ, Faith, Gia đình, Hope, "Cuộc sống Building ", Tình yêu, Nhiệm vụ, " Mối quan hệ] " ) – Aashish1aug

0

Hãy thử này và cho rằng cần phải thêm jsonkit và nhập khẩu josnkit.h trong lớp học của bạn

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