Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果GSON与POJO'不同,如何在GSON中指定JSON元素名;谁的会员姓名?_Json_Gson - Fatal编程技术网

如果GSON与POJO'不同,如何在GSON中指定JSON元素名;谁的会员姓名?

如果GSON与POJO'不同,如何在GSON中指定JSON元素名;谁的会员姓名?,json,gson,Json,Gson,我理解@SerializedName注释的目的。这在将java对象转换为Json以覆盖成员的默认名称时使用。现在我有一个场景,传入的Json有一个键为“318”的元素。显然,我不能让Java成员名以数字开头。我将如何将这个Json元素“318”映射到名为“threeOneEight”的java成员。有什么想法吗 您使用与另一种方法完全相同的方法:@SerializedName 选中此项: package net.sargue.gson; import com.google.gson.Gson;

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

您使用与另一种方法完全相同的方法:
@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.