Qual è la differenza tra getString()
e optString()
in JSON?La differenza tra getString() e optString() in JSON
risposta
Come cita Diego, è una buona idea controllare il documentation (questo link è ora fuori moda - cosa buona abbiamo la Wayback Machine!) prima di inviare una domanda qui, ma ora che avete:
La differenza è che optString
restituisce la stringa vuota (""
) se la chiave specificata non esiste. getString
d'altra parte lancia un JSONException
. Utilizzare getString
se si tratta di un errore per i dati mancanti o optString
se non si è sicuri se sarà presente.
Edit: Descrizione completa dalla documentazione:
Ottenere una stringa opzionale associata con una chiave. Restituisce una stringa vuota se non esiste una chiave di questo tipo. Se il valore non è una stringa e non è nullo, viene convertito in una stringa.
FYI: fornire una seconda stringa come parametro verrà utilizzata come valore predefinito se la chiave specificata non esiste. –
public java.lang.String optString (int index) Ottenere il valore di stringa facoltativo associato a un indice. Restituisce una stringa vuota se non c'è alcun valore in quell'indice. Se il valore non è una stringa e non è nullo, viene sostituito da una stringa. Parametri: index - L'indice deve essere compreso tra 0 e length() - 1. Restituisce: Un valore di stringa.
Se si vuole evitare NullPointerException
è meglio fare uso di optString()
Se stai recuperando i dati da JSON
in qualsiasi momento, si potrebbe avere i dati null
per un particolare valore chiave, in quel momento, invece di attuare Null condizioni, meglio utilizzare questo metodo ottimizzato optString("<keyname>")
Grazie mille !! mi aiuta molto – Sairam
'optString' può essere utile in situazioni in cui non si è sicuri che il formato di richiesta JSON rimarrà lo stesso ... ad esempio, chiamando' getString' su una richiesta JSON potrebbe funziona inizialmente, ma se cambia in futuro in modo tale che la chiave non esista più, verrà generata un'eccezione e la tua app potrebbe bloccarsi. –