/ / Come specificare il nome dell'elemento JSON in GSON se è diverso dal nome membro del POJO? - JSON, Gson

Come specificare il nome dell'elemento JSON in GSON se è diverso dal nome membro del POJO? - JSON, Gson

Capisco lo scopo di @SerializedNameannotazione. Questo è usato durante la conversione dell'oggetto java in Json per sovrascrivere il nome predefinito del membro. Ora ho uno scenario in cui il JSON in entrata ha un elemento con la chiave "318". Ovviamente non posso avere un nome membro Java che inizia con un valore numerico. Come mapperò questo elemento JSON "318" a un membro java con il nome qualcosa come "threeOneEight". Qualche idea?

risposte:

0 per risposta № 1

Usi esattamente lo stesso metodo usato al contrario: @SerializedName.

Verificare questo:

package net.sargue.gson;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.SerializedName;
import org.intellij.lang.annotations.Language;

public class SO36488332 {
public static void main(String[] args) {
@Language("JSON")
String json = "{n" +
"  "318": "I am a String."n" +
"}";

Gson gson = new GsonBuilder().create();
MyPOJO myPOJO = gson.fromJson(json, MyPOJO.class);
System.out.println("myPOJO.threeOneEight = " + myPOJO.threeOneEight);
}

private static class MyPOJO {
@SerializedName("318")
private String threeOneEight;
}
}

Il risultato dell'esecuzione è:

myPOJO.threeOneEight = I am a String.