我有一个来自 Json 格式的数据库的字符串。
我尝试使用以下方法对其进行反序列化:
RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer();
var x = deserial .Deserialize<Customer>(myStringFromDB)
但是 .Deserialize
函数需要一个 IRestResponse
有没有办法使用 RestSharp 来反序列化原始字符串?
最佳答案
有几种方法可以做到这一点。一个非常流行的处理 json 的库是 Newtonsoft.Json
.可能您已经在您的 asp.net 项目中拥有它,但如果没有,您可以从 nuget
添加它.
考虑到你有一个响应对象,包含以下命名空间并调用静态方法DeserializeObject<T>
来自 JsonConvert
类:
using Newtonsoft.Json;
using RestSharp;
return JsonConvert.DeserializeObject<T>(response.Content);
在 response.Content
上,您将获得原始结果,因此只需将此字符串反序列化为 json 对象。 T
在这种情况下是您需要反序列化的类型。
例如:
var customerDto = JsonConvert.DeserializeObject<CustomerDto>(response.Content);
更新
最近,微软增加了一个命名空间 System.Text.Json
在.Net平台上处理json格式。您可以使用它调用 JsonSerializer.Deserialize<T>
静态方法:
using System.Text.Json;
var customer = JsonSerializer.Deserialize<Customer>(jsonContent);
关于c# - 使用 restsharp 反序列化 json 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16530060/