2016-04-07 14 views
0

@SerializedName ek açıklamasının amacını anlıyorum. Bu, java nesnesini, üyenin varsayılan adını geçersiz kılmak için Json'a dönüştürürken kullanılır. Şimdi gelen Json'un "318" anahtarıyla bir öğeye sahip olduğu bir senaryo var. Açıkçası bir sayısal ile başlayan bir Java üye adı olamaz. Bu Json elementini "318" i bir java üyesine "threeOneEight" gibi bir isimle nasıl eşleştireceğim. Herhangi bir fikir?POJO'nun üye adından farklıysa, GSON'da JSON öğesi adı nasıl belirtilir?

cevap

0

Tam olarak aynı yöntemi kullandığınız yöntemi kullanın: @SerializedName.

Kontrol bu:

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; 
    } 
} 

yürütme sonucudur:

myPOJO.threeOneEight = I am a String. 
İlgili konular