JSON中的getString()
和optString()
有什麼區別?Json中的getString()和optString()之間的區別
回答
迭戈提到,這是檢查documentation一個好主意(此鏈接是已經過時的 - 好東西,我們有Wayback Machine!)在這裏發佈提問之前,但現在您有:
的區別如果您指定的密鑰不存在,則optString
返回空字符串(""
)。 getString
另一方面拋出JSONException
。如果數據丟失,請使用getString
;如果您不確定數據是否存在,則使用optString
。
編輯:從文檔全面介紹:
獲取與數字鍵關聯的可選字符串。如果沒有這樣的密鑰,它將返回一個空字符串。如果該值不是一個字符串並且不爲空,則將其轉換爲一個字符串。
參考:如果指定的鍵不存在,則提供第二個字符串作爲參數將用作默認值。 –
public java.lang.String optString(int index) 獲取與索引關聯的可選字符串值。如果該索引處沒有值,它將返回一個空字符串。如果該值不是一個字符串並且不爲空,則它將被轉換爲一個字符串。參數: index - 索引必須介於0和length() - 1之間。
如果你想避免NullPointerException
你更好地利用optString()
如果你在任何時候取出由JSON
數據,你可能有null
數據特定鍵值,在那個時候,而不是實施零條件,更好地利用這種優化的方法optString("<keyname>")
非常感謝!它幫助我很多 – Sairam
- 1. R.string.xxx和getString(R.string.xxx)之間的區別?
- 2. getString()和getResources.getString()之間的區別
- 3. getExtras(name).getString和getIntent()。getStringExtra(name)之間的區別
- 4. 瞭解ToArray和JSON之間的區別
- 5. json和rss之間的區別?
- 6. JACKSON和JSON之間的區別?
- 7. dataType jsonp和JSON之間的區別
- 8. JSON和SBJSON之間的區別?
- 9. 之間的〜/和的區別../
- 10. '#','%'和'$'之間的區別
- 11. {!!之間的區別!!}和{{}}
- 12. '+ ='和'= +'之間的區別?
- 13. 「。+」和「。+?」之間的區別
- 14. .eq之間的區別。和==
- 15. #。/和#之間的區別。 ./
- 16. !=和!之間的區別==
- 17. 「%〜dp0」和「。\」之間的區別?
- 18. | =和^ = css之間的區別
- 19. 之間的區別。和#
- 20. ==和case之間的區別?
- 21. 「**/* /」和「** /」之間的區別?
- 22. jQuery - '。'之間的區別和「#」
- 23. 「?1」和「?」之間的區別
- 24. `%in%`和`==`之間的區別
- 25. fmod和%之間的區別
- 26. 之間的區別:+和:+
- 27. MVC4中的XML和Json序列化程序之間的區別
- 28. make中的「$(shell ...)」和「$$(...)」之間的區別
- 29. python中的[]和[,,]之間的區別
- 30. javascript中的/ * * /和//之間的區別
'optString'可用於你不確信JSON請求格式將保持不變的情況下...即,在JSON請求上調用'getString'可能會一開始工作,但如果它在未來發生變化,使得鑰匙不再存在,就會拋出異常你的應用可能會崩潰。 –