我是Spring的新手,我正在处理奇怪的行为,当我从API获取json响应时,我没有获取属性名称,只是值。我怎么可能找到什么阻止propertyName返回响应?Spring Rest Api Json响应不显示属性名称
电流响应:
[
[
"6ED569AAE51C401CB621E96856766BF4",
"{\"EventType\":\"Test\",\"lastName\":\"Smith\",\"age\":25,\"address\":{\"streetAddress\":\"212ndStreet\",\"city\":\"NewYork\",\"state\":\"NY\",\"postalCode\":\"10021\"}}",
"{\"EventType\":\"Test\",\"lastName\":\"Smith\",\"age\":25,\"address\":{\"streetAddress\":\"212ndStreet\",\"city\":\"NewYork\",\"state\":\"NY\",\"postalCode\":\"10021\"}}",
"JPA_USER",
1459372275949,
"JPA_USER",
1459372275949,
"A",
"UPJPATESTEVENT",
"8210D1C62E014F158859EC0D034435BC"
]
]
但是正确的反应会随着像属性名称:
[
[
"refEventTypeId":"6ED569AAE51C401CB621E96856766BF4",
"jsonExampleDocument":"{\"EventType\":\"Test\",\"lastName\":\"Smith\",\"age\":25,\"address\":{\"streetAddress\":\"212ndStreet\",\"city\":\"NewYork\",\"state\":\"NY\",\"postalCode\":\"10021\"}}",
"jsonAvroSchema":"{\"EventType\":\"Test\",\"lastName\":\"Smith\",\"age\":25,\"address\":{\"streetAddress\":\"212ndStreet\",\"city\":\"NewYork\",\"state\":\"NY\",\"postalCode\":\"10021\"}}",
"createUser":"JPA_USER",
"createDate":1459372275949,
"updateUser":"JPA_USER",
"updateDate":1459372275949,
"status":"A",
"eventType":"UPJPATESTEVENT",
"tenantId":"8210D1C62E014F158859EC0D034435BC"
]
]
控制器:
@ResponseBody
@RequestMapping(value = "/abc", method = RequestMethod.GET, produces = "application/json")
public List<EventORM> getAllEvents2(@RequestParam(value = "status", required = false) String status) throws SQLException {
List<EventORM> event = eventManager.getAllEvents(status);
return event;
}
我也在控制器,但我使用ResponseEntity尝试仍然得到相同的结果:
个@ResponseBody
@RequestMapping(value = "", method = RequestMethod.GET, produces = "application/json")
public ResponseEntity<List<EventORM>> getAllEvents(@RequestParam(value = "status", required = false) String status) throws SQLException {
List<EventORM> event = eventManager.getAllEvents(status);
return new ResponseEntity<List<EventORM>>(event, HttpStatus.OK);
}
DAOImpl:
public List<EventORM> getAllEvents(String status) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT refEventTypeId, jsonExampleDocument, jsonAvroSchema, createUser, createDate, updateUser, updateDate, status, eventType, tenantId FROM EventORM event");
Query queryEvents = entityManager.createQuery(sql.toString());
return queryEvents.getResultList();
}
型号:
package com.epsilon.al.ml.dao.orm.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import com.epsilon.al.ml.commons.AuditModelORM;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
@Entity
@Table(name = "T_REF_EVENT_TYPE", schema = "MI_DEV_USER")
public class EventORM extends AuditModelORM implements Serializable {
/**
*
*/
private static final long serialVersionUID = 471512149777116797L;
@Column(name = "REF_EVENT_TYPE_ID")
@Id
private String refEventTypeId;
@Column(name = "JSON_EXAMPLE_DOCUMENT")
private String jsonExampleDocument;
@Column(name = "JSON_AVRO_SCHEMA")
private String jsonAvroSchema;
@Column(name = "EVENT_TYPE")
private String eventType;
@Column(name = "TENANT_ID")
private String tenantId;
public String getEventType() {
return eventType;
}
public void setEventType(String eventType) {
this.eventType = eventType;
}
public String getTenantId() {
return tenantId;
}
public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}
public String getRefEventTypeId() {
return refEventTypeId;
}
public void setRefEventTypeId(String refEventTypeId) {
this.refEventTypeId = refEventTypeId;
}
public String getJsonExampleDocument() {
return jsonExampleDocument;
}
public void setJsonExampleDocument(String jsonExampleDocument) {
this.jsonExampleDocument = jsonExampleDocument;
}
public String getJsonAvroSchema() {
return jsonAvroSchema;
}
public void setJsonAvroSchema(String jsonAvroSchema) {
this.jsonAvroSchema = jsonAvroSchema;
}
@Override
public String toString() {
return "EventORM [refEventTypeId=" + refEventTypeId + ", jsonExampleDocument=" + jsonExampleDocument
+ ", jsonAvroSchema=" + jsonAvroSchema + ", createUser=" + getCreateUser() + ", createDate=" + getCreateDate()
+ ", updateUser=" + getUpdateUser() + ", updateDate=" + getUpdateDate() + ", status=" + getStatus() + ", eventType="
+ eventType + ", tenantId=" + tenantId + "]";
}
}
谢谢!
答案在我的情况:
TypedQuery<EventORM> queryEvents = entityManager.createQuery(sql.toString(), EventORM.class);
尝试在您的POM添加这种依赖性: ' org.codehaus.jackson 杰克逊映射器 - 翔升 1.9。10 ' 并把刚@ResponseBody ** **之前你的方法的返回(...名单@ResponseBody ... ) –