.NET Core - Json.NET反序列化映射

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET Core - Json.NET反序列化映射相关的知识,希望对你有一定的参考价值。

是否可以在JSON字符串的反序列化过程中对对象进行映射?

var resultObject = JsonConvert.DeserializeObject<ConfigItemGetResult>(result);

我的JSON字符串与我想要反序列化的对象不同。因此映射必须发生。我试图避免制作一个模型,将1到1映射到JSON字符串,然后使用例如AutoMapper从对象映射到对象。

答案

使用Serialization Attributes配置序列化映射

public class JsonTest
{
    [JsonProperty(PropertyName = "SomePropNameFromJson")]
    public string SomeProp { get; set; }
    [JsonProperty(PropertyName = "SomeNested")]
    public SomeClass SomeClass { get; set; }
}
    public class SomeClass
    {
         public SomeClass1 SomeClass1 { get; set; }
    }

    public class SomeClass1
    {
          public string text { get; set }
    }

杰森在这里

{“SomeProp”:“value”,“SomeNested”:{“SomeClass1”:{“text”:“textvalue”}}}

Json转换试图通过反射将文本转换为对象,如果它们在文本中找到支持名称,如果它们在JSON中具有不同的名称,它们可以通过[JsonProperty(PropertyName =“SomeNested”)]来指定它attr默认情况下没有设置它会尝试通过prop名称来获取它无论什么属性,它是一些对象(你的嵌套对象)或基本类型,它会尝试自动转换它。

以上是关于.NET Core - Json.NET反序列化映射的主要内容,如果未能解决你的问题,请参考以下文章

.Net Core WebAPI:使用不同的 json 序列化器选项来反序列化同一控制器中的请求体

无法访问 Newtonsoft.JSON .Net Core 2.* 方法

在 ASP.NET Core 中使用 IHttpClientFactory 发出 HTTP 请求

.NET(C#)通过JSON.NET反序列化Elasticsearch返回响应的结果

Json.NET:反序列化嵌套字典

尝试使用 JSON.NET 反序列化带有 [] 字符的 JSON