找不到合适的HttpMessageConverter用于响应类型[..]和内容类型[application / json]

时间:2014-08-25 14:27:29

标签: java android json spring

我使用Spring for Android来解析我的Json。

但我最近有这个错误:

  

找不到合适的HttpMessageConverter用于响应类型[... request.Temp]和内容类型[application / json]

即使我使用能够处理application / json的MappingJackson2HttpMessageConverter

这是我的请求代码:

HttpHeaders headers = new HttpHeaders();

    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    headers.setAcceptEncoding(ContentCodingType.GZIP);

    MultiValueMap<String, String> map=getParameters();

    HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<MultiValueMap<String, String>>(map, headers);

    RestTemplate template=getRestTemplate();
    template.setErrorHandler(new MyDefaultReponseErrorHandler());

    /* I also tried it
    MappingJackson2HttpMessageConverter converter=new MappingJackson2HttpMessageConverter();
    List<MediaType> mediaTypeList=new ArrayList<>();
    mediaTypeList.add(new MediaType("application", "json"));
    converter.setSupportedMediaTypes(mediaTypeList);
    */

    List<HttpMessageConverter<?>> converterList=new ArrayList<>();
    converterList.add(new FormHttpMessageConverter());
    //converterList.add(converter);
    converterList.add(new MappingJackson2HttpMessageConverter());
    template.setMessageConverters(converterList);

    return template.postForObject(endPoint, entity, clazz);

我尝试解析的对象:

{
"error": null,
"result": [
    { .. some fields .. }
]
}

使用:

@JsonIgnoreProperties(ignoreUnknown=true)
@JsonAutoDetect(fieldVisibility= JsonAutoDetect.Visibility.NONE)
public class Temp {
private int error;
private ArrayList<Search> arrayList;

public int getError() {
    return error;
}

@JsonProperty("error")
public void setError(int error) {
    this.error = error;
}

public ArrayList<Search> getArrayList() {
    return arrayList;
}

@JsonProperty("result")
public void setArrayList(ArrayList<Search> arrayList) {
    this.arrayList = arrayList;
}
}

使用WebService的其他功能(没有数组)这项工作。

当我用以下结果解析结果时,我发现另一件事很奇怪:

@JsonProperty("result")
 public void setResult(String string) {

}

我有解析错误。这是正常的,字符串不同的数组,但至少他试图解析。

那么,一个想法?

PS:我尝试使用数组进行解析的另一个函数,它可以正常工作

1 个答案:

答案 0 :(得分:0)

好的,我发现了这个错误,它来自我的对象搜索(对于我的搜索数组):

@JsonProperty("start_date")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
public void setStartDate(Date startDate) {
    this.startDate = startDate;
}

@JsonProperty("start_date")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
public void setEndDate(Date endDate) {
    this.endDate = endDate;
}

我使用过两次“start_date”,错误信息并不是真的明确......

相关问题