如果它与POJO的成员名称不同,如何在GSON中指定JSON元素名称?

时间:2016-04-07 22:29:42

标签: json gson

我理解@SerializedName注释的目的。在将java对象转换为Json以覆盖成员的默认名称时使用此方法。现在我有一个场景,传入的Json有一个带有键的元素" 318"。显然我不能有一个以数字开头的Java成员名。我将如何映射这个Json元素" 318"一个名为" threeOneEight"的java成员。任何的想法?

1 个答案:

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