Apex 数据传输对象。反序列化数据
Apex Data Transfer Object. Deserializing data
我是 Apex 和 SF 的新手,我必须处理来自我们呼叫的第 3 方 API 的一些错误。我一直在使用 DTO 和非常简单的响应对象,我们得到的错误响应对象又多了一个级别。
JSON 来自 API 的回复:
{
"error": {
"message": "File couldn't be downloaded: main_panel"
}
}
DTO 文件:
public class CreateCadRequestError {
public string error;
public CreateCadRequestErrorMessage message;
}
public class CreateCadRequestErrorMessage {
public string message;
}
Apex class 反序列化数据
class SoloConnector {
resp = makeNetworkCall()...
SoloDTO.CreateCadRequestError resp = ( SoloDTO.CreateCadRequestError )JSON.deserialize( response.getBody(), SoloDTO.CreateCadRequestError.class );
System.debug('resp: ' + resp.error + resp.message);
}
我收到一个错误
illegal value for primitive
我假设它是我的 DTO class 并且无法序列化数据。有什么建议吗?
找到答案,我的 DTO 设置不正确:
public class CreateCadRequestError {
public CreateCadRequestErrorMessage error;
}
public class CreateCadRequestErrorMessage {
public string message;
}
我是 Apex 和 SF 的新手,我必须处理来自我们呼叫的第 3 方 API 的一些错误。我一直在使用 DTO 和非常简单的响应对象,我们得到的错误响应对象又多了一个级别。
JSON 来自 API 的回复:
{
"error": {
"message": "File couldn't be downloaded: main_panel"
}
}
DTO 文件:
public class CreateCadRequestError {
public string error;
public CreateCadRequestErrorMessage message;
}
public class CreateCadRequestErrorMessage {
public string message;
}
Apex class 反序列化数据
class SoloConnector {
resp = makeNetworkCall()...
SoloDTO.CreateCadRequestError resp = ( SoloDTO.CreateCadRequestError )JSON.deserialize( response.getBody(), SoloDTO.CreateCadRequestError.class );
System.debug('resp: ' + resp.error + resp.message);
}
我收到一个错误
illegal value for primitive
我假设它是我的 DTO class 并且无法序列化数据。有什么建议吗?
找到答案,我的 DTO 设置不正确:
public class CreateCadRequestError {
public CreateCadRequestErrorMessage error;
}
public class CreateCadRequestErrorMessage {
public string message;
}