如何解决在响应对象中添加其他字段
我在调用API时反应迟钝。
Response postRequestResponse = ConnectionUtil.getwebTarget()
.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION,true)
.path("bots")
.path(ReadSkillID.readSkillId())
.path("dynamicEntities").path(dynamicEntityID)
.path("pushRequests").path(pushRequestID).path(operation)
.request()
.header("Authorization","Bearer " + ConnectionUtil.getToken())
.get();
下面我得到的输出。
{
"createdOn": "2020-08-17T12:19:13.541Z","updatedOn": "2020-08-17T12:19:23.421Z","id": "C84B058A-C8F9-41F5-A353-EC2CFE7A1BD9","status": "TRAINING","statusMessage": "Request Pushed into training,on user request"
}
我必须将此输出返回给客户端,并在响应中添加一个附加字段。如何修改上述响应并使之响应
{
"EntityName": "NewEntity",//New field
"createdOn": "2020-08-17T12:19:13.541Z",on user request"
}
我在这里添加此附加字段 “ EntityName”:“ NewEntity”
我该怎么做。我做了很多尝试,但都遇到了异常。
解决方法
- 从
postRequestResponse
获取JSON(我不知道您使用的是什么框架,因此您必须自己弄清楚它,但是Response数据类型可能会有getResponseBody或类似的方法来重现JSON) - 添加EntityName
- 再次将其序列化为json。
class YourBean { @Autowired private ObjectMapper objectMapper; public void yourMethod() { // 1 final InputStream jsonFromResponse = ... // 2 Map dataFromResponse = objectMapper.readValue(jsonFromResponse,Map.class); dataFromResponse.put("EntityName","NewEntity"); // 3 final String enrichedJson = objectMapper.writeValueAsString(dataFromResponse); } }
enrichedJson
包含EntityName以及来自API的任何内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。