@SerializedNameの目的を理解しています注釈。これは、javaオブジェクトをJsonに変換するときに使用され、メンバーのデフォルト名をオーバーライドします。着信Jsonにキー「318」を持つ要素があるシナリオがあります。明らかに、数値で始まるJavaメンバー名を持つことはできません。このJson要素「318」を「threeOneEight」などの名前のJavaメンバーにどのようにマッピングしますか。何か案が?
回答:
回答№1は0他の方法で使用したのとまったく同じ方法を使用します。 @SerializedName
.
これをチェックして:
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;
}
}
実行結果は次のとおりです。
myPOJO.threeOneEight = I am a String.