.NET Core - Json.NET 反序列化映射
.NET Core - Json.NET Deserialisation Mapping
是否可以在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 }
}
这里Json
{ "SomeProp":"value", "SomeNested":{
"SomeClass1":{
"text":"textvalue"
}
} }
Json convert 尝试通过反射将文本转换为具有值的对象 如果他们在文本中找到道具名称 他们取值 如果道具名称在 JSON 中有不同的名称 你可以指定它通过 [Json属性(属性Name = "SomeNested")] 如果默认情况下未设置此 attr,它将尝试通过 prop name 获取它,无论它是什么 属性也就是说,它是一些对象(你的嵌套对象)或基本类型,它会尝试自动转换它。
是否可以在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 }
}
这里Json
{ "SomeProp":"value", "SomeNested":{ "SomeClass1":{ "text":"textvalue" } } }
Json convert 尝试通过反射将文本转换为具有值的对象 如果他们在文本中找到道具名称 他们取值 如果道具名称在 JSON 中有不同的名称 你可以指定它通过 [Json属性(属性Name = "SomeNested")] 如果默认情况下未设置此 attr,它将尝试通过 prop name 获取它,无论它是什么 属性也就是说,它是一些对象(你的嵌套对象)或基本类型,它会尝试自动转换它。