2012-12-09 2 views
52

Qual è la differenza tra getString() e optString() in JSON?La differenza tra getString() e optString() in JSON

+6

'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. –

risposta

89

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.

+1

FYI: fornire una seconda stringa come parametro verrà utilizzata come valore predefinito se la chiave specificata non esiste. –

0

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.

6

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>")

+0

Grazie mille !! mi aiuta molto – Sairam