c# - 使用 restsharp 反序列化 json 字符串

我有一个来自 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);

https://stackoverflow.com/questions/16530060/

相关文章:

java - 如何使用 Gson 解码具有未知字段的 JSON?

ruby - 如何在 Ruby 1.9 中将 Hash 转换为 JSON 字符串?

json - AngularJS ng-repeat orderBy date 不起作用

python - 将字典转换为 JSON 数组时出现 TypeError

json - 如何在 IntelliJ/Android Studio 中格式化粘贴的 JSON

.net - 在 .NET 中缩小缩进的 JSON 字符串

java - jackson 2.0 和 Spring 3.1

c# - JSON序列化中属性名称的默认驼峰式大小写

java - 不改变 POJO 的不区分大小写的 JSON 到 POJO 的映射

c# - 如何在 asp.net web api 中返回 json 错误消息?