Có lớp nào để phân tích cú pháp JSON từ máy chủ trong SDK iOS không? (Tương tự như NSXML cho XML và bằng cách mở rộng RSS.)Hỗ trợ JSON gốc trong iOS?
Trả lời
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!
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ể.
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
Đố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
Đố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
@umassthrower Tôi chắc chắn bạn đã biết cờ '-fno-objc-arc' ... –
Có một số thư viện JSON cho iPhone được liệt kê trong luồng này: https://stackoverflow.com/questions/286087/best-json-library-to-use-when-developing-an-iphone-application
Liên kết bị hỏng.Không tìm thấy trang! – ioopl
NextiveJson là được cho là khá nhanh cho JavaScript JSON NextiveJson
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
- 1. Hỗ trợ JSON nguyên gốc của trình duyệt (window.JSON)
- 2. will_paginate hỗ trợ JSON?
- 3. Hỗ trợ đối tượng JSON gốc trên trình duyệt di động
- 4. Cấu hình JSON hỗ trợ Spring?
- 5. JSON SerDe cho Hive hỗ trợ các mảng JSON
- 6. Trạng thái hỗ trợ D trên iOS
- 7. hỗ trợ MS Word trên iOS
- 8. Hỗ trợ SMB/samba trên iOS?
- 9. Hỗ trợ gốc tổng hợp trong khung thực thể
- 10. Cách phát hiện hỗ trợ JSON trong javascript?
- 11. presentViewController không hỗ trợ định hướng trong iOS 6
- 12. Windows phone 7 mã nguồn gốc hỗ trợ
- 13. Hỗ trợ TSQL gốc cho các truy vấn song song
- 14. jQuery có xây dựng hỗ trợ JSON không?
- 15. Spring REST 3 để hỗ trợ XML và JSON
- 16. Bộ mã hóa JSON Python để hỗ trợ datetime?
- 17. ActionBar (Hỗ trợ) với Fragment (hỗ trợ)
- 18. Điện thoại di động Flex hỗ trợ các tính năng di động gốc?
- 19. ShareKit hỗ trợ iOS 5 ngay bây giờ?
- 20. iOS 6 Xcode 4.5 armv7s kiến trúc được hỗ trợ
- 21. Hỗ trợ UIAppearence cho iOS 6 - kết quả bất ngờ
- 22. Phiên bản iOS tối thiểu hỗ trợ C++ 0x
- 23. TWRequest iOS API chỉ hỗ trợ xác thực ứng dụng?
- 24. Các nút gốc trong JSON
- 25. hỗ trợ speex trong android
- 26. Phiên bản iOS trên “mydevice_name” không được hỗ trợ bởi cài đặt iOS SDK
- 27. XML thành chuyển đổi JSON trong iOS
- 28. Hỗ trợ Rijndael trong Java
- 29. hỗ trợ log4j trong Android
- 30. Hỗ trợ \ K trong regex
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
@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
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