我有一个Javascript应用程序,它使用Java作为Hibernate,Spring和MySQL的后端。问题是,即使我在我的数据库中有大写列,也在我的实体源中,我在后端返回的JSON中得到小写的列名。
以下是模型来源:
package app.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.codehaus.jackson.annotate.JsonAutoDetect;
@JsonAutoDetect
@Entity
@Table(name="resources")
public class Resource {
@Id
@GeneratedValue
@Column(name="Id")
private int Id;
@Column(name="Name", nullable=false)
private String Name;
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;
}
}
返回的JSON:
{"data":[{"name":"Tom","id":8},{"name":"Mike","id":9},{"name":"Jerry","id":10},{"name":"Larry","id":11},{"name":"Tina","id":12},{"name":"Tony","id":15}],"success":true}
这种行为在某种程度上是可覆盖/可配置的吗?如果需要更多内容,我将使用所需数据更新帖子。
答案 0 :(得分:3)
这是杰克逊基于getter方法名称的传统输出。使用@JsonProperty注释覆盖此行为。
答案 1 :(得分:3)
试试这个..
@JsonProperty("Id")
public int getId() {
return Id;
}
public void setId(int id) {
this.Id = id;
}
@JsonProperty("Name")
public String getName() {
return Name;
}
public void setName(String name) {
this.Name = name;
}