[英]Return POJO as JSON in Spring MVC 4
我有一個非常簡單的對象,我想以JSON的形式返回
public class Event {
private String store;
private Date date;
private double fee;
private String kit;
private String information;
和測試控制器如下
@RestController
@EnableWebMvc
public class UserController {
@RequestMapping(value = "/user/{username}", method = RequestMethod.GET, produces = "application/json", headers="Accept=*/*")
@ResponseBody
public Event getUser(@PathVariable("username") String username){
Event event = new Event("dummy", new Date(), 4.0, "dummy", "dummy");
return event;
}
}
我得到“此請求標識的資源只能根據請求“ accept”標頭生成特性不可接受的響應。”
我的servlet只有此條目
<mvc:annotation-driven />
如何獲得所需的輸出?
添加
dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.0</version>
</dependency>
我猜這是內容協商的問題。 您的請求中“ Accept”標頭的值是什么? 可能將其設置為除“ applcation / json”以外的其他值,但是由於“ Accept”標頭值為“ * / *”,因此該控制器方法仍注冊為請求處理程序。 例如“ Accept:text / xml”;
我建議您嘗試的另一件事是返回ResponseEntity而不是Event。 它將使用HttpMessageConverters轉換您的響應(默認情況下,gson用作json類型內容的解析器,如果您的類路徑中存在Jackson,則將使用它代替)。 你可以在這里閱讀更多
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.