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

时间:2017-12-18 09:28:12

标签: asp.net-core json.net json-deserialization

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

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

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

1 个答案:

答案 0 :(得分: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 }
    }

这里是Json

  

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

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