Ho le snipets seguito di JSON String:Come convertire JSON String con campi dinamici su Object?
{
"networks": {
"tech11": {
"id": "1",
"name": "IDEN"
},
"tech12": {
"id": "2",
"name": "EVDO_B"
}
}
}
che uso alcuni metodi per convertire questa stringa per oggetto:
private static Gson mGson = new Gson();
...
public static WebObjectResponse convertJsonToObject(String jsonString) {
WebObjectResponse webObjectResponse = null;
if(jsonString != null && jsonString.length() > 1){
webObjectResponse = mGson.fromJson(jsonString, WebObjectResponse.class);
}
return webObjectResponse;
}
Dove WebObjectResponse
è classe che dovrebbe rappresentare sopra menzionato String.
Non è complicato se ottengo campi statici. Ma nel mio caso i valori sono diversi nomi: tech11
, tech12
....
posso usare @SerializedName
ma le sue opere in casi specifici, come convertito "classe" a "class_". Come si vede networks
Oggetto definito come elenco di oggetti tech
ma con post-correzione diversa.
public class WebObjectResponse{
private DataInfoList networks = null;
}
Questo è attuazione statico, ho definito 2 valori tech11
e tech12
ma responso successivo potrebbe essere techXX
public class DataInfoList {
private DataInfo tech11 = null;
private DataInfo tech12 = null;
}
public class DataInfo {
private String id = null;
private String name = null;
}
Qual è il buon modo per convertire la corrente stringa JSON in Object dove elenco degli elementi sono Anche gli oggetti e hanno nomi diversi?
Grazie.
Si prega di mostrare le parti pertinenti della classe 'WebObjectResponse', per la struttura. –
Aggiunto 3 classi –
Al momento, dovrebbe mappare perfettamente.Se hai una quantità variabile di oggetti 'DataInfo', allora considera di usare una mappa, con' techXX' come chiave String. –