我有一个POJO类患者,具有以下特征:
public class Patient implements Serializable{
private static final long serialVersionUID = 2L;
private long id;
private String name;
private Date dob;
private String phoneNo;
private String email;
private Address address;
private String username;
private String password;
....
现在从我的Rest控制器中,我只需要在json中发送患者的姓名、电话号码、电子邮件和地址。我希望json输出为
{
"check":"Success",
"details":{
"name":"Test User",
"phoneNo":"9876544321",
"email":"test@gmail.com",
"address":"Address"
}
}
此处仅将检查成功/失败添加为标志。
patientdo.java
public class PatientDTO {
private Check check;
@JsonIgnoreProperties(value = {"id", "dob", "username", "password"})
private Object details;
/* Getter & Setter */
public enum Check {
SUCCESS("Success"),
FAILURE("Failure");
private String name;
Check(String name) {
this.name = name;
}
@JsonValue
public String getName() {
return name;
}
}
}
控制器演示:
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/patient")
public PatientDTO getPatient() {
PatientDTO patientDTO = new PatientDTO();
patientDTO.setCheck(PatientDTO.Check.SUCCESS);
patientDTO.setDetails(new Patient());
return patientDTO;
}
}
使用超文本传输协议状态
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Patient {
private long id;
private String name;
private Date dob;
private String phoneNo;
private String email;
private Address address;
private String username;
private String password;
/* Getter & Setter */
}
控制器演示:
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("patient")
// or @ResponseStatus(HttpStatus.OK)
public ResponseEntity<Patient> patient() {
Patient patient = new Patient();
patient.setId(123);
patient.setName("123");
patient.setEmail("demo@demo.com");
patient.setPassword(null); // set to null to ignore password
return ResponseEntity.ok(patient);
}
}
Spring Boot使用Jackson进行JSON序列化和反序列化,尝试使用@JSonIgnore(com.fasterxml.jackson.annotation.JsonIgnore)。
只需创建另一个对象并将其用作restful控制器的响应;
public class PatientResponse implements Serializable {
private static final long serialVersionUID = 2L;
private Check check;
private Detail details;
// getter, setter, etc
public static class Detail {
private String name;
private String phoneNo;
private String email;
private String address;
// getters, setters, etc
}
public enum Check {
Success, Failure
}
}
@RestController
public class PatientController {
@GetMapping(...)
public PatientResponse get(...) {
Patient patient = ... // get patient somehow
return mapPatientToResponse(patient); // map Patient to PatientResponse here
}
}
下面的API接受来自客户端的json字符串,并将其映射到电子邮件对象中。如何将请求正文()作为原始字符串获取?(我需要原始字符串和键入版本的参数) PS:这个问题不是重复的:如何在SpringREST控制器中访问普通json主体?
我明白,对于处理器,我只需在文件夹下的中编写代码,然后从中创建一个nar文件。但是在控制器服务的情况下,我有4个文件夹生成。我可以看到两个java文件。 > 显示在文件夹下 显示在文件夹下 现在,为什么在自定义控制器服务的情况下生成两个java文件,而在自定义处理器的情况下只生成一个java文件。另外,由于我试图模仿服务,其中的java文件中有两个我应该复制服务的原始源代码。 请从头开始指导我创建
我尝试用自定义控制器制作一个自定义组件。自定义组件已经显示在应用程序上,但我未能向其添加属性。 项目结构: null 布尔马尔科 完全错误: 原因:java.lang.nullPointerException:无法调用“javafx.scene.image.imageeview.setimage(javafx.scene.image.image)”,因为“controller.topbarbtn.
控制器定义 ThinkCMF5的控制器完全按 TP5的控制器用法来,但 CMF 封装了几个重要控制器基类,为了更方便开发者,我们建议如果没有特殊需求,自己创建的控制器请最好继承一个基类控制器; 用于 WEB 项目的基类控制器有四个,分别是:BaseController,HomeBaseController,UserBaseController,AdminBaseController 继承关系 th
控制器定义 ThinkCMF6.0的控制器完全按 TP6.0的控制器用法来,但 CMF 封装了几个重要控制器基类,为了更方便开发者,我们建议如果没有特殊需求,自己创建的控制器请最好继承一个基类控制器; 用于 WEB 项目的基类控制器有四个,分别是:BaseController,HomeBaseController,UserBaseController,AdminBaseController, Re
控制器定义 控制器文件通常放在application/module/controller下面,类名和文件名保持大小写一致,并采用驼峰命名(首字母大写)。 一个典型的控制器类定义如下: <?php namespace app\index\controller; use think\Controller; class Index extends Controller { public fu