我正在尝试将服务(json)的响应映射到对象。
当有可用数据时返回json值:
{
"phone": "0712123123",
"username": "aaa@bbb.com",
"lastName": "aaa",
"firstName": "bbb",
"address": "New address",
"email": "aaa@bbb.com",
"notificationSettings": [
{
"eventType": "a1",
"email": true,
"notification": true,
},
{
"eventType": "a2",
"email": true,
"notification": true,
}
]
}
当该用户没有可用数据时的返回值:
[]
服务电话如下:
public UserDataDto getUserInfoService(String xAuthToken) {
HttpHeaders headers = new HttpHeaders();
headers.set("XAuth", xAuthToken);
HttpEntity httpEntity = new HttpEntity(headers);
try {
ResponseEntity response = restTemplate.exchange(
baseUrl + getUserInfo,
HttpMethod.GET,
httpEntity,
UserDataDtoDto.class,
version);
return (UserDataDto) response.getBody();
} catch (HttpStatusCodeException e) {
handleException(e);
throw e;
}
}
我已经阅读了类似问题的其他响应,我知道该方法需要一个对象{},并且当给定用户没有可用数据时它会收到一个数组[],因此异常。我知道用UserDataDto []替换UserDataDto可以解决这个特殊问题。
我的问题是如何避免为这种情况制作新方法。有没有办法更新当前方法,以便它适用于两种情况:有或没有信息的用户。