我遇到了一个漂亮的弹簧安卓客户端模块的问题。 我正在为其余客户端创建响应类型,以便能够将响应解组到对象中。但后来我意识到我做不到。 响应具有连字符字段名称,这阻止我创建具有此字段名称的类。
以下是JSON响应的示例:
{
....
created-by: "Wikipedia",
last-updated-by: "Wikipedia",
create-date: "2010-11-21 13:55:37",
last-update-date: "2010-11-21 13:55:37",
...
}
所以在这种情况下,我不能上课,例如:
class ResponseType{
private String created-by; //NOT A VALID VARIABLE NAME
...
}
我试图从很多论坛得到答案,但我找不到解决方案。 我找到了许多人建议在场上注释的地方,如:
@JsonProperty("created-by")
private String created_by;
但它没有用,因为spring android rest模板没有这个注释。
我想要实现的目标是:
String url = "http://mymemory.translated.net/api/get?q=accidentally&langpair=en|hu";
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
ResponseType responseType = restTemplate.getForObject(url, ResponseType.class, "Android");
我很好奇解决方案是什么。期待答案!
答案 0 :(得分:0)
最后我发现了这个问题。
问题是spring android rest模块有依赖性。特别是第三方图书馆。
让我粘贴一部分文档:
粘贴2.2.3对象到JSON Marshaling对象到Spring中的JSON封送for Android RestTemplate需要使用第三方JSON 映射库。 Spring中支持三个库 Android,Jackson JSON处理器,Jackson 2.x和Google Gson。 虽然杰克逊是众所周知的JSON解析库,但是Gson 库更小,这将导致更小的Android应用程序时 包装