2012-12-09 27 views
52

Sự khác biệt giữa getString()optString() trong JSON là gì?Sự khác nhau giữa getString() và optString() trong Json

+6

'optString' có thể hữu ích trong trường hợp bạn không tự tin rằng định dạng yêu cầu JSON vẫn giữ nguyên ... tức là gọi' getString' trên yêu cầu JSON làm việc lúc đầu, nhưng nếu nó thay đổi trong tương lai sao cho khóa không còn tồn tại, một ngoại lệ sẽ bị ném và ứng dụng của bạn có thể gặp sự cố. –

Trả lời

89

Như Diego đề cập đến, đó là một ý tưởng tốt để kiểm tra documentation (liên kết này hiện nay đã quá hạn - điều tốt chúng ta có Wayback Machine!) trước khi đăng một câu hỏi ở đây, nhưng bây giờ mà bạn có:

Sự khác biệt là optString trả về chuỗi trống ("") nếu khóa bạn chỉ định không tồn tại. getString mặt khác ném một số JSONException. Sử dụng getString nếu đó là lỗi cho dữ liệu bị thiếu hoặc optString nếu bạn không chắc chắn liệu nó có ở đó hay không.

Edit: Mô tả đầy đủ từ các tài liệu:

Nhận một chuỗi tùy chọn liên kết với một chìa khóa. Nó trả về một chuỗi rỗng nếu không có khóa như vậy. Nếu giá trị không phải là một chuỗi và không phải là null, thì nó được chuyển thành một chuỗi.

+1

FYI: việc cung cấp chuỗi thứ hai làm tham số sẽ được sử dụng làm giá trị mặc định nếu khóa được chỉ định không tồn tại. –

0

public java.lang.String optString (int index) Nhận giá trị chuỗi tùy chọn được liên kết với chỉ mục. Nó trả về một chuỗi rỗng nếu không có giá trị tại chỉ mục đó. Nếu giá trị không phải là một chuỗi và không phải là null, thì nó được chuyển thành một chuỗi. Tham số: chỉ mục - Chỉ mục phải nằm trong khoảng từ 0 đến length() - 1. Trả về: Giá trị chuỗi.

6

Nếu bạn muốn tránh NullPointerException bạn tốt hơn tận dụng optString()

Nếu bạn đang lấy dữ liệu từ JSON bất cứ lúc nào, bạn có thể có null dữ liệu cho một giá trị quan trọng đặc biệt, tại thời điểm đó thay vì thực hiện Null điều kiện, tốt hơn là sử dụng phương pháp được tối ưu hóa này optString("<keyname>")

+0

Cảm ơn rất nhiều !! nó giúp tôi rất nhiều – Sairam

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