Ian*_*ink 29 c# rest json restsharp asp.net-web-api
我有一个字符串,它来自一个Json格式的数据库.
我试图用以下方法反序列化它:
RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer();
var x = deserial .Deserialize<Customer>(myStringFromDB)
Run Code Online (Sandbox Code Playgroud)
但.Deserialize功能期望一个IRestResponse
有没有办法使用RestSharp来反序列化原始字符串?
Ste*_*J81 40
如果您想避免使用额外的库,请尝试以下方法:
RestSharp.RestResponse response = new RestSharp.RestResponse();
response.Content = myStringFromDB;
RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer();
Customer x = deserial.Deserialize<Customer>(response);
Run Code Online (Sandbox Code Playgroud)
注意事项适用 - 未经过广泛测试 - 但似乎运作良好.
Fel*_*ani 37
我也有这个问题,我用它来解决它Newtonsoft.Json.
包括这些名称空间:
using Newtonsoft.Json;
using RestSharp;
Run Code Online (Sandbox Code Playgroud)
并尝试这样的事情:
return JsonConvert.DeserializeObject<T>(response.Content);
Run Code Online (Sandbox Code Playgroud)
在response.Content,您将获得原始结果,因此只需将此字符串反序列化为json对象.该T在的情况下,你需要反序列化的类型.样品:
var customerDto = JsonConvert.DeserializeObject<CustomerDto>(response.Content);
Run Code Online (Sandbox Code Playgroud)