有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓将JSON映射到具有不同关键字的Java对象

我的公司有一个Web服务器API,提供JSON格式的搜索结果。我负责开发一个使用该API的Android应用程序,并且我制作了一些类来对JSON响应中的对象进行建模

出于习惯和个人喜好,我习惯用英语编写代码。然而,大多数JSON密钥不是英文的。这样,我就不能轻易地使用GSON将JSON字符串转换为Java对象——至少我是这么认为的

我想知道是否有任何方法可以在代码中每个类只引用一次JSON键和它们对应的实例变量之间的连接。在引用之后,我可以简单地从JSON实例化对象,并从对象创建JSON字符串

可能吗

例如:

// Java code
class Model {
    String name;
    Integer age;
}

// JSON with keys in Portuguese
{
    "nome" : "Mark M.",      # Key "nome" matches variable "name"
    "idade" : 30             # Key "idade" matches variable "age"
}

共 (1) 个答案

  1. # 1 楼答案

    使用@SerializedName注释

    以下是如何使用此注释的示例:

     public class SomeClassWithFields {
       @SerializedName("name") private final String someField;
       private final String someOtherField;
    
       public SomeClassWithFields(String a, String b) {
         this.someField = a;
         this.someOtherField = b;
       }
     }
    

    下面显示了序列化上述示例类的实例时生成的输出:

     SomeClassWithFields objectToSerialize = new SomeClassWithFields("a", "b");
     Gson gson = new Gson();
     String jsonRepresentation = gson.toJson(objectToSerialize);
     System.out.println(jsonRepresentation);
    

    =======输出=====

     {"name":"a","someOtherField":"b"}
    

    资料来源:SerializedName Javadocs