我的公司有一个网络服务器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"
}
答案 0 :(得分:3)
使用@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"}