如何将 RestSharp 响应解析为 class?
How do I parse a RestSharp response into a class?
我正在使用 RestSharp 处理发送电子邮件,我需要能够检查回复以确保一切正常。
我对 JSON 完全一无所知,但我从搜索中看到的内容让我相信调用 client.Execute<T>( Foo )
应该会导致我得到一个 T
类型的对象具有由请求执行结果填充的属性...
事实并非如此。
在我故意让 POST 失败的情况下,我从 response.Content 属性 得到这个:
{"error":3,"message":"Wrong credentials specified"}
当我使用正确的凭据提交请求时,response.Content 看起来像这样:
{"message":"OK"}
这让我相信创建一个像这样的 class 应该是我所需要的:
public class RestMessage {
string error { get; set; }
string message { get; set; }
}
但是当我打电话给
IRestResponse<RestMessage> Foo = Bar.Execute<RestMessage>( Baz );
Foo.Data
等于 RestMessage
类型的对象,但在任何一种情况下,结果总是 error = null
(这在后一种情况下有意义,但在前者中没有)和 message = null
.
显然它并不像我读过的每个例子都那么简单。
我已经在 VS2015 社区使用他们很棒的 NuGet 安装了来自 NuGet 的 RestSharp...所以我有最新的版本。
谁能解释一下我如何才能完成我想要对我做的事情,就好像我还在出牙一样?
感谢 Gusman 指出这一点。
答案太简单了我恨自己没有看到它,现在我的办公桌上有一个 face-shaped 凹痕,我的脸以前有一个 desk-shaped 凹痕......
之前:
public class RestMessage{
string error{ get; set; }
string message{ get; set; }
}
之后:
public class RestMessage{
public string error{ get; set; }
public string message{ get; set; }
}
不要喝酒和给孩子写代码...
我正在使用 RestSharp 处理发送电子邮件,我需要能够检查回复以确保一切正常。
我对 JSON 完全一无所知,但我从搜索中看到的内容让我相信调用 client.Execute<T>( Foo )
应该会导致我得到一个 T
类型的对象具有由请求执行结果填充的属性...
事实并非如此。
在我故意让 POST 失败的情况下,我从 response.Content 属性 得到这个:
{"error":3,"message":"Wrong credentials specified"}
当我使用正确的凭据提交请求时,response.Content 看起来像这样:
{"message":"OK"}
这让我相信创建一个像这样的 class 应该是我所需要的:
public class RestMessage {
string error { get; set; }
string message { get; set; }
}
但是当我打电话给
IRestResponse<RestMessage> Foo = Bar.Execute<RestMessage>( Baz );
Foo.Data
等于 RestMessage
类型的对象,但在任何一种情况下,结果总是 error = null
(这在后一种情况下有意义,但在前者中没有)和 message = null
.
显然它并不像我读过的每个例子都那么简单。
我已经在 VS2015 社区使用他们很棒的 NuGet 安装了来自 NuGet 的 RestSharp...所以我有最新的版本。
谁能解释一下我如何才能完成我想要对我做的事情,就好像我还在出牙一样?
感谢 Gusman 指出这一点。
答案太简单了我恨自己没有看到它,现在我的办公桌上有一个 face-shaped 凹痕,我的脸以前有一个 desk-shaped 凹痕......
之前:
public class RestMessage{
string error{ get; set; }
string message{ get; set; }
}
之后:
public class RestMessage{
public string error{ get; set; }
public string message{ get; set; }
}
不要喝酒和给孩子写代码...