jquery - 如何将嵌套的 JSON 传递给 Spring Controller
问题描述
我的 JSON 格式如下:
"Organization":{
"legalname" : "",
"dba" : "",
"fein" : ""
}
从我的 Jquery 代码中,我将 AJAX 调用传递为:
$.ajax({
type: "POST",
contentType: "application/json",
url: "OMS/ConfirmationR",
data: JSON.stringify(data),
dataType: 'json',
success: function (JSONText) {
alert('success');
console.log("SUCCESS: ", data);
},
error: function(xhr, status, error){
var errorMessage = xhr.status + ': ' + xhr.statusText
alert('Error - ' + errorMessage);
}
});
当 json 没有嵌套并且具有以下值时,此代码运行良好:
{"legalname":"test","dba":"dba","fein":"123"},
这些值正在控制器中打印,但是当 JSON 采用以下格式时,我看到这些值为 null:
{"Organization":{"legalname":"test","dba":"dba","fein":"123"}}
请指教
控制器代码:
@RequestMapping("OMS/ConfirmationR")
public ResponseEntity<?> goToOrgConfReg(@RequestBody OrgVODummy org, Model model) {
System.out.println("In goToOrgConfReg!!! getLegalName : " + org.getLegalname() + " DBA: " + org.getDba()
+ " FEIN:" + org.getFein());
AjaxResponse result = new AjaxResponse();
if (org.getLegalname() == null) {
System.out.println("@RequestBody is null");
result.setMsg(" Failed");
} else {
System.out.println("@RequestBody is not null");
result.setMsg(" Pass");
}
return ResponseEntity.ok(result);
}
解决方案
可能您的OrgVODummy
课程如下所示:
class OrgVODummy {
private String legalname;
private String dba;
private String fein;
// getters and setters
}
但是你应该有这样的东西:
class OrganizationDummy {
private OrgVODummy organization;
// getters and setters
}
比在您的控制器中更改为:
public ResponseEntity<?> goToOrgConfReg(@RequestBody OrganizationDummy org, Model model) {
这应该与这个json一起工作(organization
以小写字母开头):
{"organization":{"legalname":"test","dba":"dba","fein":"123"}}
推荐阅读
- web-scraping - 滚动到下一页并提取数据
- c - 如何设置一个只有 makefile 和源代码的 C 程序,以便使用 QtCreator 进行调试?
- python - SQLalchemy:在两列或多列中选择满足条件的行
- ignite - Apache ignite 客户端节点重新连接出现错误 org.apache.ignite.internal.processors.cache.CacheStoppedException:无法执行缓存操作
- javascript - 在表格内搜索元素时表格标题保持固定
- mysql - CentOS7上MYSQL和MYSQLD不能启动MySQL 5.7企业版
- bokeh - Bokeh,独立 html,访问由 CustomAction 创建的 div 以添加样式 bk-active
- java - 有没有办法以编程方式在框架布局中创建水平滚动排列?
- azure - 在 imagesharp.web 上使用自定义 CacheHash 时出现 Http 错误 500
- vb.net - 命令执行期间遇到致命错误。