2010-08-25 28 views

Trả lời

72

Do JSON của iOS5 được hỗ trợ nguyên bản, không cần khung bên thứ 3. Điều này được hỗ trợ bởi NSJSONSerialization Class!

+1

Bạn có khuyên bạn nên sử dụng các lớp gốc hoặc JSONKit - tôi đã nghe lý do hiệu suất vì sao bạn sẽ sử dụng các lớp không phải gốc và sẽ yêu một số phản hồi – Doug

+0

@Doug theo điều này: http://www.bonto.ch/ blog/2011/12/08/json-thư viện-cho-ios-so sánh-cập nhật/JSONKit là nhanh hơn, nhưng trừ khi bạn đang làm việc với một số lượng lớn JSON Tôi không nghĩ rằng nó sẽ làm cho nhiều sự khác biệt. – ThomasW

+0

NSJSONSerialization có một lỗi trong iOS 5 chỉ (tôi không bao giờ tìm thấy nó trong 6) và đôi khi sẽ ném một lỗi trên JSON hoàn toàn hợp lệ. Lỗi này cho biết Tên miền lỗi = NSCocoaErrorDomain Code = 3840 "Thao tác không thể hoàn thành. (Lỗi ca cao 3840.)" (Khóa trùng lặp cho đối tượng xung quanh ký tự 126.) Tôi không biết nguyên nhân gây ra lỗi hoàn toàn, vì tôi có thể không phải lúc nào cũng tái tạo nó. – LightningStryk

36

câu trả lời Cập nhật dành cho iOS 5:

JSON hỗ trợ tại là nguồn gốc từ iOS với NSJSONSerialization, nhưng về mặt hiệu suất, nó lu mờ so để JSONKit, như John englehart ghi trong JSONKit README:

CẬP NHẬT: (2011/12/18) các tiêu chuẩn dưới đây được thực hiện trước khi Táo NSJSONSerialization đã có sẵn (như của Mac OS X 10.7 và iOS 5). Câu hỏi rõ ràng là: Đó là nhanh hơn, NSJSONSerialization hoặc JSONKit? Theo trang web này, JSONKit nhanh hơn NSJSONSerialization. Một số tính toán "ngược lại phong bì" nhanh chóng bằng cách sử dụng các con số được báo cáo, JSONKit có vẻ nhanh hơn khoảng 25% đến 40% so với NSJSONSerialization, điều này khá đáng kể.

enter image description here

Dưới đây là một bài đăng blog mà đào sâu vào các tiêu chuẩn cụ thể hơn: JSON Libraries for iOS Comparison

+10

Đối với bất kỳ ai tìm câu hỏi này qua Google hoặc một số nguồn tương tự khác: câu trả lời của boz dưới đây thay thế câu trả lời này. Hỗ trợ JSON hiện có nguồn gốc từ iOS. – Tommy

+0

Đối với bất cứ ai hy vọng sử dụng JSONKit với ứng dụng của bạn sử dụng bộ sưu tập rác dựa trên tài liệu tham khảo của iOS, bạn sẽ không may mắn ở đây (nói cách khác, tài liệu JSONKit không đề cập đến hành vi của JSONKit khi được sử dụng với Ứng dụng ARC không xác định). Tuy nhiên, nếu bạn đang sử dụng ARC, bạn có thể không quan tâm quá nhiều về bộ nhớ và hiệu suất anyway :-) – umassthrower

+2

@umassthrower Tôi chắc chắn bạn đã biết cờ '-fno-objc-arc' ... –

0

Về JSONKit điểm chuẩn, cho thời điểm hiện tại và phiên bản iOS không quá nhanh. Sau khi tạo ứng dụng thử nghiệm để thử nghiệm tốc độ NSJSONSerialization nhanh hơn nhưng không nhanh như triển khai tùy chỉnh OKJSONParser

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