我正在使用 JSON 网络服务。在任何 JSON 请求上,Web 服务都可以通过错误类型 JSON 或响应类型进行响应。例如:
{
"response": "register",
"error": {
"@c" : "error",
"code": "USER_EXISTS",
"message": ""
}
}
或者
{
"response": "register",
"register": {
"session": {
"@c" : "session",
"userId": "18",
"sessionId": "ASFT23WETT234QQW"
}
}
}
我试图反序列化为类型的任何响应,这与请求有关。例如,当请求为 RegisterRequest 时为 RegisterResponse。
如果响应是错误类型响应,代码
JsonConvert.DeserializeObject<RegisterResponse> (jsonResponse);
使用所有空属性值创建了 RegisterResponse。
如果 JSON 字符串和目标类型不兼容,如何建议 JSON.NET 抛出异常?
类定义:
public class Response
{
public string response { get; set; }
public Response ()
{ }
}
public class Session
{
public long userId;
public string sessionId;
public Session ()
{ }
}
public class RegisterResponse: Response
{
public Session session { get; set; }
public RegisterResponse ()
{
session = new Session();
}
}
public class Error
{
public string code;
public string message;
public Error ()
{
}
}