使用newtonsoft或restsharp反序列化json字符串

时间:2013-05-13 19:54:54

标签: c# json rest asp.net-web-api restsharp

我有一个字符串来自Json格式的数据库。

我试图用以下方法对其进行反序列化:

RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer();
var x = deserial .Deserialize<Customer>(myStringFromDB)

.Deserialize函数需要IRestResponse

有没有办法使用RestSharp来反序列化原始字符串?

2 个答案:

答案 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);