Desidero serializzare valori null per un campo o una classe specifici.serializzazione Gson null per classe o campo specifico
In GSON, l'opzione serializeNulls()
si applica all'intero JSON.
Esempio:
class MainClass {
public String id;
public String name;
public Test test;
}
class Test {
public String name;
public String value;
}
MainClass mainClass = new MainClass();
mainClass.id = "101"
// mainClass has no name.
Test test = new Test();
test.name = "testName";
test.value = null;
mainClass.test = test;
Creazione JSON utilizzando GSON:
GsonBuilder builder = new GsonBuilder().serializeNulls();
Gson gson = builder.create();
System.out.println(gson.toJson(mainClass));
ouput attuale:
{
"id": "101",
"name": null,
"test": {
"name": "testName",
"value": null
}
}
output desiderato:
{
"id": "101",
"test": {
"name": "testName",
"value": null
}
}
Come ottenere l'uscita desiderata?
soluzione preferita avrebbe le seguenti proprietà:
- fare NON nulls serializzare per impostazione predefinita,
- nulls Serializzazione per i campi con specifica annotazione.
@DatoMumladze Ho aggiornato la mia domanda – Martin
Non ho trovato questa funzione in Gson. Ecco alcuni interessanti [link] (https://mindfirejavaexperts.wordpress.com/2014/03/14/how-to-use-gson-library/) Oppure puoi usare Jackson per serializzare l'oggetto su json ed escludere valori nulli per campi specifici utilizzando questa annotazione '@JsonSerialize (include = JsonSerialize.Inclusion.NON_NULL)' –
Possibile duplicato di [Escludere determinati campi dalla serializzazione in base al valore in GSON] (http://stackoverflow.com/questions/13120354/excluding-certain -campi-da-serializzazione-based-on-value-in-GSON) – tima