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

问题描述 投票:2回答:1

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

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

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

asp.net-core json.net json-deserialization
1个回答
1
投票

使用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名称来获取它无论什么属性,它是一些对象(你的嵌套对象)或基本类型,它会尝试自动转换它。

© www.soinside.com 2019 - 2024. All rights reserved.