java - HTTP 请求可能返回两种结构的对象
问题描述
HTTP 请求可能返回两种结构的对象。返回成功时是一个结构,返回失败时是另一个结构。我无法得到成功或失败的迹象。我只能收到以下结构。我如何用java解析?
SuccessResponse:
{
"id":1,
"name":"lulu"
"score":[100,97,89]
}
ErrorResponse:
{
"errorCode": "string",
"errorMessage": "string"
}
解决方案
那是 JSON - 大多数使用 JSON 的库都会以一种或另一种方式支持这一点:
-> 如果你将返回解析为一个简单的 Map<>,你可以检查 Map 中是否有一个键“errorCode”
-> 如果解析为对象,则可以指定响应对象中的所有字段并允许 id 和 score 为空值。然后你可以简单地if(obj.errorCode != null)
在杰克逊,它可能看起来像这样
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(Include.NON_NULL)
public class MyReturn {
Integer id;
String name;
List<Integer> score;
String errorCode;
String errorMessage;
}
加上每个......
推荐阅读
- vb.net - Project Online CSOM:获取每日作业计划
- python - 在 Reportlab 中将变量页眉和页脚添加到多页 PDF
- c# - 为什么当 ModelState.IsValid 为 false 时无法在 Controller 中命中断点?
- python - 如何从“张量”中获取多个相同大小的切片?
- node.js - 从节点 js lambda 访问 s3 时访问被拒绝
- spring - Okta 生成不记名令牌
- go - 使用 go 将多行字符串写入 yaml 文件
- flutter - 在颤振地图(openstreet)中制作搜索地址但无法将相机移动到标记位置
- python - django 如何为模型 DecimalField 使用选项
- api - Matomo: 尝试通过 setDocumentTitle("testDirectory/testTitle"); 设置标题类别