我是Spring Boot和REST API的新手,我正在mysql表中保存一行,为映射表的字段获取带有空值的JSON响应。但字段具有映射表中的值。
我使用Postman以JSON形式发送请求。
我不知道如何获得所有字段的值响应。下面我提到了代码。
控制器类:
@RestController
public class HelpDeskController<T> extends RestUtils<T> {
@Autowired
HelpDeskService hService;
@RequestMapping(value = "/helpDesk/createTicket", method = RequestMethod.POST, headers = "Accept=application/json")
public @ResponseBody Object setTicket(@Valid @RequestBody HelpDesk ticket) {
try {
return getSuccessResponse(hService.setTicket(ticket));
} catch (StudawnException e) {
return getErrorResponse(e.getMessage());
}
}
}
服务级别:
@Service
public class HelpDeskServiceImpl implements HelpDeskService {
@Autowired
HelpDeskRepository helpDeskRepository;
@Override
public Object setTicket(HelpDesk ticket) throws StudawnException {
if (ticket == null)
throw new StudawnException(ErrorCode.NULL_REQUEST);
else {
return helpDeskRepository.save(ticket);
}
}
}
模范班
@Entity
@Table(name = "Help_Desk")
public class HelpDesk {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ticket_id")
private int ticketId;
@JsonBackReference
@ManyToOne
@JoinColumn(name = "student_id")
private Student student;
@ManyToOne
@JoinColumn(name = "category_id",nullable=false,updatable=false)
private Category category;
@ManyToOne
@JoinColumn(name = "sub_category_id",nullable=false,updatable=false)
private SubCategory subCategory;
@Column(name = "ticket_desc", length = 300)
private String ticketDesc;
@Column(name = "status")
private short status;
@Column(name = "response", length = 300)
private String response;
@Column(name = "date_created", nullable = false, updatable = false)
private Date dateCreated;
@Column(name = "date_closed")
private Date dateClosed;
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
public SubCategory getSubCategory() {
return subCategory;
}
public void setSubCategory(SubCategory subCategory) {
this.subCategory = subCategory;
}
public int getTicketId() {
return ticketId;
}
public void setTicketId(int ticketId) {
this.ticketId = ticketId;
}
public String getTicketDesc() {
return ticketDesc;
}
public void setTicketDesc(String ticketDesc) {
this.ticketDesc = ticketDesc;
}
public short getStatus() {
return status;
}
public void setStatus(short status) {
this.status = status;
}
public String getResponse() {
return response;
}
public void setResponse(String response) {
this.response = response;
}
public Date getDateCreated() {
return dateCreated;
}
public void setDateCreated(Date dateCreated) {
this.dateCreated = dateCreated;
}
public Date getDateClosed() {
return dateClosed;
}
public void setDateClosed(Date dateClosed) {
this.dateClosed = dateClosed;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
}
邮递员中的JSON请求:
{
"category" : {"categoryId": 1515},
"subCategory" : {"subCategoryId": 1502},
"student" : { "studentId":1101},
"ticketDesc": "Ticket Desc21",
"status":12,
"response": "Resp12",
"dateCreated": "2018-03-12",
"dateClosed": "2018-04-12"
}
JSON响应:
为映射表中的字段获取空值,但不为用于映射的字段(外键)获取空值。
{
"response": {
"ticketId": 22,
"category": {
"categoryId": 1515,
"categoryName": null,
"createdDate": null
},
"subCategory": {
"subCategoryId": 1502,
"subCategoryName": null,
"createdDate": null
},
"ticketDesc": "Ticket Desc21",
"status": 12,
"response": "Resp12",
"dateCreated": "2018-03-12T00:00:00.000+0000",
"dateClosed": "2018-04-12T00:00:00.000+0000"
},
"status": 200
}
@ResponseBody
尝试将其方法的返回值转换为JSON(默认情况下)——通过hs服务返回
,Spring将帮助台
对象。setTicket(ticket)帮助台的所有字段映射到它的JSON值。在您的
帮助台
类中,您的类别
字段来自类型类别
,因此类类别
的所有字段的命名必须与Spring的JSON字段完全相同,以便能够将它们与getter/setter绑定。
您也可以使用
@JSONProperty
注释将您的类字段绑定到类别
类中的JSON名称:何时使用@JsonProperty属性以及它的用途?
我已经使用API从API中提取了JSON响应,请放心,它看起来像这样: 现在,我实际的JSON响应在JSON数组中有数千个JSON对象,一些键有空值,例如“secondKey”在一些JSON对象中有空值。我需要获取JSON响应中所有空值的键。对我该如何做有什么想法吗? 我解决这个问题的想法是使用Jackson库反序列化JSON并获取所有空值。然而,考虑到性能,是否有任何有效的解决方案?
将返回响应的控制器类的代码: 下面是具有一对一映射的两个实体类。 我得到的回应是: 如上面的响应所示,我只得到json值,我的意思是只得到没有列名的表值。因此,如何将json响应映射到响应协同响应键上。
我正在尝试使用Jackson将JSON映射到POJO。但是,由于此JSON包含对象的嵌套映射,当我将其反序列化到POJO时,timeseries信息不会转换为POJO。我只能在timeseries块中获取元数据部分和日期部分。timeseries块中的其他字段(如open、high和low)始终为空。 Jackson似乎无法将TimeSeries类中的字段与匹配。有人能告诉我该怎么做,或者给我指出
我有一个名为Trade的实体,它可以映射到包含属性的表。这个实体也有一个字段,存储来自另一个表的值。我的贸易表包含第二个表的主键。我知道如何获得整个第二个表作为实体在我的贸易实体,但我只想要1列。 如你所见,我尝试了,但是连接是在贸易实体的主密钥上执行的。我如何使用注释从贸易表中选择外键,将其连接到第二/第三表,并直接只从col2/col3中获取值?任何建议都很感激 餐桌贸易: 表2: 表3: 现
这里有一个映射,我正在尝试检查数组中的值,如果它找到,则返回;如果它没有找到,则返回预期输出。根据我对和索引的了解,如果(x[index]===y[j]){condition=true}应该进入
问题内容: 我正在尝试使用其开放的API获取特定Subreddit的顶级提交列表: 不幸的是,这不起作用,因为实际的提交列表嵌套在响应中。如何将数据json数组(在元素中)解组为struct 类型的数组? 问题答案: 创建更多模拟JSON确切形状的结构(就像您的结构一样)。解组到最顶层的结构之一,然后访问该结构的适当成员。