2012-12-09 49 views
52

JSON中的getString()optString()有什麼區別?Json中的getString()和optString()之間的區別

+6

'optString'可用於你不確信JSON請求格式將保持不變的情況下...即,在JSON請求上調用'getString'可能會一開始工作,但如果它在未來發生變化,使得鑰匙不再存在,就會拋出異常你的應用可能會崩潰。 –

回答

89

迭戈提到,這是檢查documentation一個好主意(此鏈接是已經過時的 - 好東西,我們有Wayback Machine!)在這裏發佈提問之前,但現在您有:

的區別如果您指定的密鑰不存在,則optString返回空字符串("")。 getString另一方面拋出JSONException。如果數據丟失,請使用getString;如果您不確定數據是否存在,則使用optString

編輯:從文檔全面介紹:

獲取與數字鍵關聯的可選字符串。如果沒有這樣的密鑰,它將返回一個空字符串。如果該值不是一個字符串並且不爲空,則將其轉換爲一個字符串。

+1

參考:如果指定的鍵不存在,則提供第二個字符串作爲參數將用作默認值。 –

0

public java.lang.String optString(int index) 獲取與索引關聯的可選字符串值。如果該索引處沒有值,它將返回一個空字符串。如果該值不是一個字符串並且不爲空,則它將被轉換爲一個字符串。參數: index - 索引必須介於0和length() - 1之間。

6

如果你想避免NullPointerException你更好地利用optString()

如果你在任何時候取出由JSON數據,你可能有null數據特定鍵值,在那個時候,而不是實施零條件,更好地利用這種優化的方法optString("<keyname>")

+0

非常感謝!它幫助我很多 – Sairam