2012-04-17 31 views
15

Tôi có chuỗi JSON là đối tượng NSString trong iOS. Tôi muốn phân tích cú pháp này và rút ra các tham số đã cho trong chuỗi JSON. Có cách nào hiệu quả để phân tích cú pháp này hay là cách duy nhất để tìm kiếm các phần tử vv?JSON JSON NSString Parse

Trả lời

48

Cách để làm điều đó với iOS 5 là để sử dụng lớp NSJSONSerialization. Bạn sẽ muốn đầu tiên chuyển đổi chuỗi của bạn đến một đối tượng NSData, và gọi phương thức lớp JSONObjectWithData

NSData *jsonData = [myJsonString dataUsingEncoding:NSUTF8StringEncoding]; 
NSError *e; 
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:nil error:&e]; 

Lưu ý rằng JSONObjectWithData sẽ trở lại hoặc là một NSDictionary hoặc một NSArray, tùy liệu chuỗi JSON của bạn đại diện cho một một cuốn từ điển hoặc một mảng .

+9

Lưu ý rằng bạn nên sử dụng 0 hoặc NSJSONReadingMutableContainers cho các tùy chọn để ngăn chặn cảnh báo trình biên dịch. –

0

Một khuôn khổ tốt để chuyển đổi chuỗi JSON thành các đối tượng mục tiêu-C (NSArrayNSDictionary) là SBJson (Github).

Cách sử dụng:

NSDictionary *dict = [myJsonString JSONValue]; 
+0

Có cách nào để làm điều đó với JSON 5 của iOS không? – user1120008

+0

Có, nhưng nó có liên quan nhiều hơn và giới hạn ứng dụng của bạn chỉ chạy trên iOS 5. –

+0

Tôi đồng ý, SBJSON là bạn của bạn. Thuận tiện hơn nhiều so với API chính thức và cũng hoạt động với các phiên bản iOS cũ hơn. – aroth

Các vấn đề liên quan