【发布时间】:2013-01-23 15:00:55
【问题描述】:
Jackson 有 @JsonProperty("name") 注解,可以应用到方法上——方法的返回值会被赋值给 JSON 中的 "name" 参数。
我发现 Gson 有 @SerializedName 注释,但不能与方法一起使用。有什么方法可以为 Gson 中的方法获取 @JsonProperty 功能?
【问题讨论】:
Jackson 有 @JsonProperty("name") 注解,可以应用到方法上——方法的返回值会被赋值给 JSON 中的 "name" 参数。
我发现 Gson 有 @SerializedName 注释,但不能与方法一起使用。有什么方法可以为 Gson 中的方法获取 @JsonProperty 功能?
【问题讨论】:
试试
@SerializedName("serialized_fld_name")
【讨论】:
Gson 中的解决方案是一个名为 @SerializedName 的类似注解,您可以使用它来提供与源 JSON 匹配的名称。
一个简单的例子如下所示:
public class Message {
@SerializedName("ID")
private String id;
@SerializedName("NFd")
private int fileDescriptors;
}
【讨论】:
不,没有。我记得,邮件列表中有一个来自核心开发人员的帖子,Gson 也不太可能得到如此增强。
【讨论】:
我对 Gson 有同样的问题,@SerializedName 对我没有帮助。所以我使用了 org.codehaus.jackson.map.ObjectMapper
ObjectMapper mapper = new ObjectMapper();
String responseJson = mapper.writeValueAsString(object);
【讨论】: