gpt4 book ai didi

javascript - 无法将 Javascript 对象转换为 Java 模型

转载 作者:行者123 更新时间:2023-11-30 06:51:11 24 4
gpt4 key购买 nike

我的 Spring Controller 和客户端 Javascript 代码如下,由于某种原因,Javascript 对象无法以对象形式到达 Spring Controller 。我的 Controller 代码如下:

@RequestMapping(value = "/addRating", method = RequestMethod.POST, headers = "Accept=application/json")
public EmployeeRating addRating(@ModelAttribute("employeeRating") EmployeeRating employeeRating) {
if(employeeRating.getId()==0)
{
employeeRatingService.addRating(employeeRating);
}
else
{
employeeRatingService.updateRating(employeeRating);
}

return employeeRating;
}

下面是我的 Javascript 代码:

$.ajax({
url: 'https://myrestURL/addRating',
type: 'POST',
dataType: 'json',
data: {
'id':5,
'name': 'Name',
'rating': '1'
},
contentType: 'application/json; charset=utf-8',
success: function (result) {
// CallBack(result);
window.alert("Result: " + result);
},
error: function (error) {
window.alert("Error: " + error);
}
});

Java 中的 EmployeeRating 对象具有 id、name 和 rating 字段,因此不会出现不匹配的情况。

<小时/>

更新模型类

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

/*
* This is our model class and it corresponds to Country table in database
*/
@Entity
@Table(name="EMPLOYEERATING")
public class EmployeeRating {

@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
int id;

@Column(name="name")
String name;

@Column(name="rating")
long rating;

public EmployeeRating() {
super();
}
public EmployeeRating(int i, String name,long rating) {
super();
this.id = i;
this.name = name;
this.rating=rating;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getRating() {
return rating;
}
public void setRating(long rating) {
this.rating = rating;
}

}

最佳答案

contentType 是您发送的数据类型,因此 application/json;默认为application/x-www-form-urlencoded;字符集=UTF-8

如果您使用 application/json,则必须使用 JSON.stringify() 才能发送 JSON 对象。

JSON.stringify() 将 javascript 对象转换为 json 文本并将其存储在字符串中。

$.ajax({
url: 'https://myrestURL/addRating',
type: 'POST',
dataType: 'json',
data: JSON.stringify({
'id':5,
'name': 'Name',
'rating': '1'
}),
contentType: 'application/json; charset=utf-8',
success: function (result) {
// CallBack(result);
window.alert("Result: " + result);
},
error: function (error) {
window.alert("Error: " + error);
}
});

关于javascript - 无法将 Javascript 对象转换为 Java 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42741197/

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