Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在动态信封RESTAPI中包装json响应_Java_Json_Spring Boot_Rest_Http - Fatal编程技术网

Java 在动态信封RESTAPI中包装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

我有一个简单的SpringBoot应用程序和一个RESTAPI。我想通过使用客户端RESTWeb服务发送学生数据(JSON格式)。 但是我想用“数据”来封装这个学生信息,应该是动态的,如下所示

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"
}