我正在努力发送包含对象作为成员属性的数据。
这是域类。
public class Timeline extends Post{
String picture;
User user;
int like;
...
(getters and setters)
}
而且我已经有了这段代码的 JSON 数据,所以我可以从 'obj' 变量中获取数据。
var obj;
$.ajax({
method: "GET",
dataType: "json",
url: serverRoot + "/json/auth/loginUser",
async: false
})
.done(function(data) {
obj = data;
});
返回的数据如下所示。
"user" : {
"userNo" : 1,
"name" : "user01",
...
}
下一个 JSON 数据是我想发送到服务器的数据。
{
"no" : 23,
"content" : "hihi",
"createdData" : "2018-07-22",
"picture" : null,
"user" : {
"userNo" : 1,
"name" : "user01",
... **obj JSON data I got above**
}
}
这是发送到服务器的代码。(这是我一直卡住的东西)
$("#sh-tl-post-btn").click(() => {
$.ajax({
type: 'POST',
url: '../../../json/timeline/add',
data: {
picture: $('#sh_tl_upload').val(),
content: $('#sh_tl_post_write').val(),
**user: [{"userNo":obj.userNo}]**
},
}).done(function() {
console.log("inserted.");
location.href = "timeline.html"
});
});
映射器文件如下所示。
<insert id="insert" parameterType="Timeline">
<choose>
<when test="picture != ''">
insert into TML(tmlno, uno, tmlpath)
values(#{no}, #{userNo}, #{picture})
</when>
<otherwise>
insert into TML(tmlno, uno)
values(#{no}, #{userNo})
</otherwise>
</choose>
</insert>
我一直在寻找在这里写什么而不是 user: [{"userNo":obj.userNo}],这个......
我一直在努力
user : {"userNo" : obj.userNo}
user.userNo : obj.userNo
user.[0].userNo : obj.userNo
...
但控制台一直说
[Request processing failed; nested exception is
org.springframework.beans.InvalidPropertyException:.....
这种错误。
有没有人可以帮助我如何通过 ajax JSON 数据绑定嵌套对象的属性?提前致谢。