Java 在动态信封RESTAPI中包装json响应
我有一个简单的SpringBoot应用程序和一个RESTAPI。我想通过使用客户端RESTWeb服务发送学生数据(JSON格式)。 但是我想用“数据”来封装这个学生信息,应该是动态的,如下所示Java 在动态信封RESTAPI中包装json响应,java,json,spring-boot,rest,http,Java,Json,Spring Boot,Rest,Http,我有一个简单的SpringBoot应用程序和一个RESTAPI。我想通过使用客户端RESTWeb服务发送学生数据(JSON格式)。 但是我想用“数据”来封装这个学生信息,应该是动态的,如下所示 if(动态==true) //将学生信息封装在“数据”中,并将学生信息发送给客户。 其他的 //不要封装学生数据并将学生信息发送给客户。 学生的当前JSON格式 { "id": "1-abcd", "name": "sta
if(动态==true)
//将学生信息封装在“数据”中,并将学生信息发送给客户。
其他的
//不要封装学生数据并将学生信息发送给客户。
学生的当前JSON格式
{
"id": "1-abcd",
"name": "stack",
"address": "Pune"
}
应为json格式
{
"data": {
"id": "1-abcd",
"name": "stack",
"address": "Pune"
}
}
学生班级如下:
班级学生{
字符串id;
字符串名;
字符串地址;
}
如果学生对象是动态的,则将其包装在地图中,否则返回学生对象
public ResponseEntity<?> getStudent(...){
...
if(dynamic){
return ResponseEntity.status(HttpStatus.OK)
.body(Collections.singletonMap("data", studentObj));
} else {
return ResponseEntity.status(HttpStatus.OK).body(studentObj);
}
}
public ResponseEntity getStudent(…){
...
if(动态){
返回响应状态(HttpStatus.OK)
.body(Collections.singletonMap(“数据”,studentObj));
}否则{
返回ResponseEntity.status(HttpStatus.OK).body(studentObj);
}
}
您可以有一个信封
类,如:
公共类信封{
学生资料;
公共学生获取数据(){
返回数据;
}
公共数据(学生数据){
这个数据=数据;
}
公共信封(学生资料){
超级();
这个数据=数据;
}
}
以及if else
中的逻辑:
//使用Jackson库:导入com.fasterxml.Jackson.databind.ObjectMapper;
ObjectMapper mapper=新的ObjectMapper();
学生=新学生(“1-abcd”、“堆叠”、“浦那”);
if(动态){
信封=新信封;
返回mapper.writeValueAsString(信封)
}
返回mapper.writeValueAsString(学生)
输出包装: 未包装:
{
"data": {
"id": "1-abcd",
"name": "stack",
"address": "pune"
}
}
{
"id": "1-abcd",
"name": "stack",
"address": "pune"
}