我想从JPA json
生成@Entity
,我有
@Entity
@JsonAutoDetect
public class Bar implements Serializable {
@Id
@GeneratedValue
private Integer id;
private String title;
//omitting other stuff
}
我的控制器是
@RestController
public class BarController {
@Autowired
private BarService barService;
@RequestMapping(value = "/", method = RequestMethod.GET, headers = "Accept=application/json", produces={"application/json"})
public List<Bar> list() {
return barService.findAllBars());
}
}
我在浏览器中遇到此错误
它有什么问题。
答案 0 :(得分:5)
“格式错误的JSON”消息来自“漂亮”打印。单击“原始”以查看实际响应。
实际响应是406 Not Acceptable
错误(在屏幕上显示),其中包含HTML的有效内容(因此来自“Pretty”的意外<
)表示请求已被服务器拒绝
从headers = "Accept=application/json"
中删除@RequestMapping
。 produces={"application/json"}
已经告诉Spring只调用此方法,如果application/json
是可接受的响应,可能是,但标题可能是*.*
,或更复杂的内容,如{{1}两个都允许text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
。
当然,由于这可能是期待JSON的AJAX调用,因此应仅在application/json
值中列出application/json
。如果不是这样,请检查执行AJAX调用的代码。
答案 1 :(得分:1)
我怀疑你的获取请求中的接受标题有问题。尝试将标题设置为
"Accept=*/*"
看看你得到了什么。
答案 2 :(得分:0)
使用JsonFormatter https://jsonformatter.curiousconcept.com/测试JSON,然后再继续。它是一个非常好的工具,可以验证JSON,并通过行号显示可能的错误。