C# JSON反序列化的格式不正确
在这件事上我完全不懂。在C#中,我编写了一个使用REST从网站获取数据的方法。根据网站上的文档,我应该使用以下内容:C# JSON反序列化的格式不正确,c#,json,json.net,restsharp,C#,Json,Json.net,Restsharp,在这件事上我完全不懂。在C#中,我编写了一个使用REST从网站获取数据的方法。根据网站上的文档,我应该使用以下内容: var client = new RestClient(url + "token"); var request = new RestRequest(Method.POST); request.AddParameter("application/x-www-form-urlencoded", "grant_type=password&use
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
}
要获得如下所示的响应:
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响应在我的“response”变量中,但除此之外,我就不知所措了。我做了一点调查,发现Json.NET应该会有所帮助,但我对此一无所知。他们的文件表明:
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(output);
Product-deserializedProduct=JsonConvert.DeserializeObject(输出);
但是,如果我将其转换为适合我的内容(创建一个“Responses”类,然后):
Responses=JsonConvert.DeserializeObject(响应);
我在VS中的“response”下得到一个错误,它说“无法从'RestSharp.IRestResponse'转换为'string'
我觉得我只需要稍微推动一下就可以克服这个困难。Responses-Responses=JsonConvert.DeserializeObject(response.Content);
Responses responses = JsonConvert.DeserializeObject<Responses>(response.Content);
Responses Responses=JsonConvert.DeserializeObject(response.Content);
如果您转到的存储库,您将看到它有一个名为Content
的特殊属性,其中包含字符串格式的JSon
现在,您可以使用
jsonvert.DeserializeObject(response.Content);
检索您的对象。如果您转到的存储库,您将看到它有一个名为Content
的特殊属性,其中包含字符串格式的JSon
现在,您可以使用
JsonConvert.DeserializeObject(response.Content);
来检索对象。另一个选项可以是为预期的输出类型声明响应
IRestResponse<Responses> response = client.Execute<Responses>(request);
IRestResponse response=client.Execute(请求);
另一个选项可能是为预期的输出类型声明响应
IRestResponse<Responses> response = client.Execute<Responses>(request);
IRestResponse response=client.Execute(请求);
你的Responses
类看起来像什么?可能重复使用JsonConvert.DeserializeObject(response.Content)
@Liam他没有JSON字符串,但有IRestResponse
对象,这意味着它不是重复的。你的响应类是什么样子的?可能重复使用JsonConvert.DeserializeObject(response.Content)
@Liam他没有JSON字符串,但有IRestResponse
对象,这意味着它不是重复的。这成功了。内容属性成功了。现在我还有其他工作要做,但关键部分成功了。谢谢!这成功了。内容属性成功了。现在我有其他工作要做,但关键部分成功了。T汉克斯!