【发布时间】:2015-05-12 07:30:48
【问题描述】:
我有一个返回 JSON 值的 Spring MVC Rest 服务,我有 8 行,这是我的 JSON
[
{"no":"1","date":"2015-03-30","grandtotal":699618,"diskon":699618},
{"no":"2","date":"2015-03-30","grandtotal":1867949,"diskon":1867949},
{"no":"3","date":"2015-03-27","grandtotal":2190909,"diskon":2190909},
{"no":"4","date":"2015-03-26","grandtotal":8616120,"diskon":8616120},
{"no":"5","date":"2015-03-26","grandtotal":1095455,"diskon":1095455},
{"no":"6","date":"2015-03-24","grandtotal":938961,"diskon":938961},
{"no":"7","date":"2015-03-24","grandtotal":5603848,"diskon":5603848},
{"no":"8","date":"2015-03-20","grandtotal":3735899,"diskon":3735899}
]
我正在尝试什么.. 这是我的控制器。 SpringRestController.java 杰克逊之路:
@RequestMapping(value = "/view", method = RequestMethod.GET)
public String initCreationForm(Map<String, Object> model) {
String url = "http://localhost:8080/SpringServiceJson/view/";
RestTemplate restTemplate = new RestTemplate();
TotalDiscList totaldisc = restTemplate.getForObject(url, TotalDisc.class);
model.put("DiscValue",totaldisc);
return "salesorders/totalDisc";
}
Gson方式:
public String initCreationForm(Map<String, Object> model) {
String url = "http://localhost:8080/SpringServiceJson/view/";
Gson gson = new Gson();
Collection<TotalDisc> totaldisc = gson.fromJson(url, PiutangListJson.class);
model.put("DiscValue",totaldisc);
return "salesorders/totalDisc";
}
我在这里错过了什么?它总是给我这个错误 “无法提取响应:没有找到适合响应类型 [class [Lorg.springframework.samples.my.model.TotalDiscList;] 和内容类型 [application/json] 的 HttpMessageConverter”
这是我的对象 TotalDiscList.java
public class TotalDiscList {
private String no;
@DateTimeFormat(pattern="dd-MM-yyyy")
private Date date;
private long grandtotal;
private long diskon;
//getter setter skipped
}
我应该返回List<TotalDiscList> totaldisc = restTemplate.getForObject(url, List<TotalDisc>.class); 对吗?
我如何正确地做到这一点?
【问题讨论】:
-
只返回一个列表。但是您返回的 JSON 与您拥有的类属性不匹配。在 JSON 中,您有
no和您的对象no_faktur。那些不匹配。你可以试试TotalDiscList[],而不是List。 -
@M.Deinum 抱歉,我复制了错误的类属性。我刚刚更新了我的答案
-
@M.Deinum 所以这是我的代码,我用你的建议填充我的代码 TotalDiscList[] totaldisc = restTemplate.getForObject(url, TotalDiscList[].class);它仍然给我同样的错误
标签: json spring spring-mvc restful-url