我有一个字符串来自Json格式的数据库。
我试图用以下方法对其进行反序列化:
RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer();
var x = deserial .Deserialize<Customer>(myStringFromDB)
但.Deserialize
函数需要IRestResponse
有没有办法使用RestSharp来反序列化原始字符串?
答案 0 :(得分:37)
如果您想避免使用额外的库,请尝试以下方法:
RestSharp.RestResponse response = new RestSharp.RestResponse();
response.Content = myStringFromDB;
RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer();
Customer x = deserial.Deserialize<Customer>(response);
警告适用 - 未经过广泛测试 - 但似乎运作良好。
答案 1 :(得分:35)
我也有这个问题,我使用Newtonsoft.Json
来解决它。
包括这些名称空间:
using Newtonsoft.Json;
using RestSharp;
尝试这样的事情:
return JsonConvert.DeserializeObject<T>(response.Content);
在response.Content
上,您将获得原始结果,因此只需将此字符串反序列化为json对象即可。该案例中的T
是您需要反序列化的类型。样本:
var customerDto = JsonConvert.DeserializeObject<CustomerDto>(response.Content);