2010-03-23 17 views
9

Tôi biết rằng Android có một trình phân tích cú pháp JSON được nướng nhưng tôi đã tự hỏi liệu nó có đáng sử dụng một cái gì đó mang lại hiệu suất tốt hơn (như Jackson - xem http://jackson.codehaus.org/) không? Có ai thử không?Thay thế trình phân tích cú pháp JSON chuẩn của Android để có hiệu suất tốt hơn?

+0

Tôi chưa bao giờ có vấn đề với tốc độ phân tích cú pháp JSON của Android. Tôi thậm chí đã có một tập tin JSON 41kb trong một trong các ứng dụng của tôi, và nó tải trong một vài trăm ms trên một G1 (đó là tốt, vì nó chỉ cần chạy một lần khi khởi động ứng dụng). –

+0

Tốc độ nói tuyệt đối có thể chấp nhận được. Vẫn còn tốt để xem xét rằng trên CPU máy tính để bàn thông thường, tốc độ phân tích cú pháp JSON là theo thứ tự hàng chục megs - tệp 41 kb sẽ được thực hiện trong mili giây hoặc lâu hơn.Ngay cả với CPU chậm hơn hệ thống Android thường có, một trăm mili giây là khá chậm, liên quan đến lựa chọn thay thế nhanh. Vì vậy, công cụ phù hợp cho công việc. Đối với sử dụng bình thường (như đọc trong tập tin cấu hình khi khởi động) trong xử lý xây dựng thường là phong nha. Nó vẫn còn tốt để biết rằng có chỗ cho cải tiến nếu trường hợp sử dụng đòi hỏi nó. – StaxMan

Trả lời

7

Vâng, dưới đây là couple trong số links so sánh hiệu suất của JSON JSON với JSON, SAX và Bộ đệm giao thức hiện có. Theo tác giả, Jackson nhanh hơn SAX hoặc JSON tích hợp và tương đương với Protocol Buffers. Phần cuối cùng có vẻ hơi nghi ngờ, nhưng, bất kể, chắc chắn nó xuất hiện Jackson hoạt động trên Android và có thể đáng để thử nghiệm.

Tôi chưa kiểm tra kích thước JAR. Nếu nó là rất lớn, trừ khi bạn đang chết vì hiệu suất JSON thêm, nó có thể không có giá trị hit không gian.

+0

Có, kích thước tệp chắc chắn trong danh sách các ràng buộc có thể có của tôi. Tôi đoán nếu tôi đã nhai rất nhiều JSON trong ứng dụng của tôi, nó có thể đáng giá thêm Jackson, nhưng Ill lại gắn bó với JSON chuẩn bây giờ. – Eno

4

Trả lời muộn nhưng vẫn có thể hữu ích. Tôi đang sử dụng Jackson để phân tích cú pháp JSON từ Twitter cũng như lưu giữ Maps vào cơ sở dữ liệu. Việc lập bản đồ dữ liệu ở Jackson thật tuyệt vời. Việc có thể ánh xạ JSON trực tiếp đến một đối tượng là tuyệt vời và làm cho mọi thứ trở nên sạch hơn.

Thậm chí nếu bạn chỉ phân tích cú pháp ánh xạ dữ liệu trả lời đơn giản có thể giúp bạn làm cho mã của bạn sạch hơn (và hiệu quả hơn). Đối với tôi đó là ơn trời mà tôi không phải viết logic phân tích cú pháp cho mọi loại chức năng api của Twitter.

+0

Cảm ơn phản hồi đó - tuyệt vời khi có công cụ khác trong lồng ngực nếu cần. – Eno

0

Chỉ cần một quan điểm khác về các trình phân tích cú pháp này. Tôi đã xem qua Google IO cho năm 2009 và có thực sự tốt đẹp nói về việc sử dụng hiệu quả pin cho các nhà phát triển ứng dụng.

Dưới đây là liên kết để nói chuyện rằng: link

Bây giờ theo talk Mục sư sẵn có cho android là Tree Dựa và chúng được cho là không hiệu quả khi nói đến tuổi thọ pin. Có ai thực sự nhìn vào điều này không.

Đọc qua cuộc thảo luận này có vẻ như trình phân tích cú pháp của Jackson dường như là người chiến thắng trong mọi thứ. Nó gần như bằng nhau nhanh chóng nếu không phải là nhiều hơn một sẵn có và cũng tổ chức sự kiện/Stream của nó như trái ngược với cây dựa mà là tốt hơn về sử dụng pin.

Chỉ là một mặc dù tôi muốn chia sẻ và nhận được một số ý kiến ​​về điều này.

0

Tôi sử dụng jackson json để triển khai ứng dụng Android của tôi liên lạc với máy chủ qua json-rpc. Tôi wold thích sử dụng nó để serialize/deserialize json-rpc yêu cầu và phản ứng và các đối tượng để chuyển dữ liệu. Tôi sử dụng phiên bản 2.0 của Jackson-json. Tôi đã đặt trong đường dẫn xây dựng của tôi hai lọ: jackson-databind-2.0.0.jar, jackson-core-2.0.0.jar và jackson-annotations-2.0.0.jar.

Trên mặt lưu ý: Có bất kỳ triển khai json-rpc nào cho Android hay không. lưu lượng json-rpc và http riêng biệt sẽ tốt. Tôi đã googled rất nhiều, bu đã không tìm thấy máy phát điện json-rpc tốt, json serializer/deserializer và cho việc vận chuyển tôi sẽ đi với android-query.

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