我理解@SerializedName注释的目的。在将java对象转换为Json以覆盖成员的默认名称时使用此方法。现在我有一个场景,传入的Json有一个带有键的元素" 318"。显然我不能有一个以数字开头的Java成员名。我将如何映射这个Json元素" 318"一个名为" threeOneEight"的java成员。任何的想法?
答案 0 :(得分:2)
您使用完全相同的方法:myVec
。
检查一下:
@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;
}
}