我对此非常不满意。在C#中,我正在编写一种使用REST从网站获取数据的方法。根据网站上的文档,我应该使用这样的东西:
var client = new RestClient(url + "token");
var request = new RestRequest(Method.POST);
request.AddParameter("application/x-www-form-urlencoded",
"grant_type=password&username=" + UserName +
"&password=" + Password +
"&tenant=" + Company,
ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
获得如下响应:
{
"access_token": "generated_token_value",
"token_type": "bearer",
"expires_in": 2591999
}
但是,我对如何阅读该信息没有任何根据。我假设JSON响应在我的“响应”变量中,但除此之外我不知所措。我做了一点挖掘,发现Json.NET应该会有所帮助,但它已经超出了我的想象。他们的文件表明:
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(output);
但是,如果我将其转换为看起来正确的东西(创建“响应”类然后):
Responses responses = JsonConvert.DeserializeObject<Responses>(response);
我在VS中的“响应”中收到错误,说“无法从'RestSharp.IRestResponse'转换为'string'。
我觉得我只是需要一点轻推来克服这个驼峰。
答案 0 :(得分:2)
如果你去Why does Date.parse give incorrect results?的存储库,你会发现它有一个名为Content
的特殊属性,其中包含字符串格式的JSon。
现在,您可以使用JsonConvert.DeserializeObject<Responses>(response.Content);
来检索您的对象。
答案 1 :(得分:1)
Responses responses = JsonConvert.DeserializeObject<Responses>(response.Content);