gpt4 book ai didi

java - Json 序列化为带有嵌套 List 属性的 java pojo

转载 作者:行者123 更新时间:2023-12-01 23:27:10 26 4
gpt4 key购买 nike

下面是我的代码尝试通过 JQuery Ajax 调用 Spring MVC Controller 来发布 Json 序列化对象(具有其他 pojo 列表的 java pojo)。

从服务器收到错误请求错误。

当从 Json 对象中删除 modalForm 数据时,MainPojo 数据在服务器端正确接收。

HTML代码

   Fisrt form
-------------
<form id="mainForm">
.....
</form>

Form in the modal
-----------------
<form id="modelform" ..>
<div id="row">
<input type="text" id="subject" />
<input type="text" id="max" />
<input type="text" id="min" />
</div>
<div id="row">
<input type="text" id="subject" />
<input type="text" id="max" />
<input type="text" id="min" />
</div>
.............
</form>}

Jquery

          var mainObject = $('#mainForm').serializeObject();

var modelObject = $('#modelform').serializeObject();

mainObject.marks = modelObject;

Json(预期)

          {
"name": "Some Name",
"age": "10",
"marks": [
{
"subject": "maths",
"max": "20",
"min":"12"
},
{
"subject": "english",
"max": "20",
"min":"12",
}
]
}

Json(上面代码的实际输出)

           {
"name": "Some Name",
"age": "10",
"marks": [
{
"subject": "maths",
"subject": "english"
},
{
"max": "20",
"max":"20",
},
{
"min": "12",
"min":"12"
}
]
}

//Ajax call
$.ajax({
url: '/save',
type: 'POST',
contentType: 'application/json',
mimeType: 'application/json',
data : JSON.stringify(mainObject),
dataType: 'json',
success: function(data) {
alert(data.msg);
},
error:function (xhr, ajaxOptions, thrownError) {
alert('Technical error occured');
}
});

Java Pojo 的

          public class MainPojo {

private String name;
private String age;
private Lists<marks>
..................
}

public class ModelPojo {

private String subject;
private String maxMarks;
private String minMarks;

.....................
}

Controller 方法

@RequestMapping(value = "save", headers = "Accept=application/json",
method = RequestMethod.POST)
public @ResponseBody String save(@RequestBody final MainPojo mainPojo) {

}

请帮我找出问题所在。

谢谢。

最佳答案

像这样修改html文本

     <form id="mainForm">
<input name="name" type="text" value="Some Name">
<input name="age" type="text" value="20">
</form>
<form class="modelform">

<input type="text" value="subject" name="subject"/>
<input type="text" value="max" name="max"/>
<input type="text" value="min" name="min"/>
</form>
<form class="modelform">
<input type="text" value="subject" name="subject" />
<input type="text" value="max" name="max"/>
<input type="text" value="min" name="min"/>
</form>

然后编写javascript代码来分配对象值

<script>
var mainObject = $('#mainForm').serializeObject();
var modelObject = [];
$('.modelform').each(function(o){
modelObject.push($(this).serializeObject());
})
mainObject.marks = modelObject;
</script>

关于java - Json 序列化为带有嵌套 List<pojo> 属性的 java pojo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819390/

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