我和我的团队正在与OData合作开展一个项目。我们正在尝试使用RestSharp客户端,但无法找到在C#中使用OData的最佳实践的任何干净示例。RestSharp和OData - 问题反序列化JSON
我们遇到的问题是,当试图获取数据时,我们认为它是2层JSON。
private T execRequest<T>(RestClient client, RestRequest request, bool retry = true)
{
IRestResponse response;
T resultdata = default(T);
try
{
response = client.Execute(request);
}
catch (Exception)
{
throw;
}
if (response.StatusDescription == "OK") // TAKE CARE OF Session expired or invalid
{
resultdata = JsonConvert.DeserializeObject<T>(response.Content);
}
return resultdata;
}
在这个结果,如果我们用一个简单的类型一样的人(ID,激活,激活)我们看到response.content数据。
“{\” @ odata.context \ “:\” http://localhost:56460/ $#元人\”,\ “价值\”:[{\ “ID \”:1090,\ “启动\”:真,“active”:false}]}“
但是resultdata实际上并没有获取数据......它初始化了对象,但ID,启用和激活都是0,false和false。
我们对此是比较新的......我的感觉虽然是因为回应不是100%,json数据可能是问题吗?
(p.s.也在寻找一些与OData和RESTSharp有关的文档)。
编辑:我们认为我们需要反序列化到一个更高级别的对象,因为response.content中的数据是一个对象,然后每个对象说。我们正试图用OData找到一个干净的例子,但还没有。
这是**实际** JSON还是你在VS中看到的? “{\”无效JSON –
嗨,这是我们在检查响应时看到的内容。内容 – melegant
在这种情况下,“T”是什么? – ColinM