Ho fatto questa domanda in un'altra domanda oggi, ma temo che non otterrà alcuna soluzione a causa di come è stata formulata.Gson - Stesso nome del campo, diversi tipi
Ho un ingresso JSON che presenta i seguenti dati:
Come si può vedere, l'elemento option_value è un array in un oggetto e una semplice stringa in un altro oggetto.
Come posso gestire correttamente Gson? La mia classe ha questo descritto come un oggetto List, in modo che funziona per i primi elementi in cui option_value è un array, ma quando diventa una stringa , l'applicazione si blocca e ottengo un'eccezione parse JSON.
Esiste una soluzione alternativa?
UPDATE
Aggiunta la parte rilevante della mia classe come richiesto:
public class Options
{
String product_option_id;
String option_id;
String name;
String type;
String required;
List<OptionValue> option_value;
// get set stuff here
public class OptionValue
{
String product_option_value_id;
String option_value_id;
String name;
String image;
String price;
String price_prefix;
// get set stuff here
}
}
Ciao Asim, puoi mostrare il tuo JSON Parser? – Kansen
Aggiunta la parte pertinente. Sto usando Gson quindi l'analisi è fatta da quella libreria usando la funzione Gson.fromJson (stringa, classe). – Asim
Non è possibile ottenere ciò utilizzando 'GSON.fromJson (String json, Class classOfT)', dovrai definire il tuo adattatore ... diciamo 'StrangeJsonAdapter' estendendo la classe' com.google.gson.TypeAdapter' .. quindi utilizzare il metodo 'StrangeJsonAdapter.fromJson (String json)' per decodificare il tuo json. –