Android rest客户端 - JSON响应中的连字符名称

时间:2014-01-23 14:49:18

标签: java android json spring rest

我遇到了一个漂亮的弹簧安卓客户端模块的问题。 我正在为其余客户端创建响应类型,以便能够将响应解组到对象中。但后来我意识到我做不到。 响应具有连字符字段名称,这阻止我创建具有此字段名称的类。

以下是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");

我很好奇解决方案是什么。期待答案!

1 个答案:

答案 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应用程序时   包装

http://docs.spring.io/spring-android/docs/1.0.1.RELEASE/reference/html/rest-template.html#rest-template-message-converters

粘贴