gpt4 book ai didi

JSON - Spring MVC : How to post json data to spring MVC controller

转载 作者:行者123 更新时间:2023-12-04 16:47:29 27 4
gpt4 key购买 nike

我在发布来自 jsp 的 JSON 数据时遇到问题至 controller .每次我尝试时都会收到 ajax 错误 Bad Request .我对 JSON 太陌生了,我真的不知道我做错了什么。我搜索并尝试了一些我可以在这个网站上找到的样本,但我仍然遇到问题。

在我的 Controller 中:

@RequestMapping (method = RequestMethod.POST, headers ={"Accept=application/json"}, value = "/form")
public String postJournalEntry (@RequestParam ("json") String json, Model model) {
System.out.println(json);
return "successfullySaved";
}

在我的jsp中:
$("#btnPostGlEntry").click(function () {
var glEntries = '{"glEntries":[{"generalLedgerId":"1"},{"accountId":"4"},{"amount":"344.44"},{"description":"Test Entry"},{"debit":"Yes"}]}';
$.ajax({
type: "POST",
contentType: "application/json",
dataType: "json",
url: contextPath + "/generalLedger/journalEntries/form",
data : JSON.stringify(glEntries),
success: function(data) {
alert("Success!!!");
},
error: function (jqXHR, textStatus, errorThrown) {
alert(jqXHR + " : " + textStatus + " : " + errorThrown);
}
});
});

注意:我什至不确定我在 Controller 中的功能是否正确。我认为我的 Controller 和我的 ajax 是错误的。请帮忙。

最佳答案

如果您希望将 JSON 反序列化为某个类,那么您必须定义这样的方法(不要忘记添加 jsonConverter,如上一个答案):

.... method(@RequestBody MyClass data){ ... }

但是,如果您希望您的方法接受 JSON 作为字符串,请执行以下操作:
.... method(@RequestBody String json){ ... }

所以,基本上,如果你发布 JSON,这意味着 JSON 不是一个参数,它是请求的主体。最终你必须使用@RequestBody 注释,而不是@RequestParam。

您可以在此处找到有关 Spring Mvc 和 JSON 的精美视频教程: sites.google.com/site/upida4j/example

关于JSON - Spring MVC : How to post json data to spring MVC controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14556330/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com