我正在使用 JsonConvert
从这样的类中序列化和反序列化对象:
public class DbBulkRequest
{
public DbEntity[] Updates { get; set; }
}
public class DbEntity
{
public string Name { get; set; }
public object Dto { get; set; }
}
当我反序列化时
Dto
, 我得到一个类型为 JObject
的对象.在反序列化的时候,我想创建基于Dto
的强类型对象.我可以创建对象;但是,我不知道填充它们的属性的好方法。我发现的最好的是这种奶酪球方法:MyEntity e = JsonConvert.DeserializeObject<MyEntity>(JsonConvert.SerializeObject(dto));
什么是更有效的解决方案?
最佳答案
private readonly JsonSerializerSettings defaultSettings = new JsonSerializerSettings
{
Formatting = Formatting.Indented,
TypeNameHandling = TypeNameHandling.Auto
};
这是示例
private readonly JsonSerializerSettings defaultSettings = new JsonSerializerSettings
{
Formatting = Formatting.Indented,
TypeNameHandling = TypeNameHandling.Auto
};
[Fact]
public void Test()
{
var entity = new DbEntity
{
Dto = new TestDto { Value = "dto" },
Name = "Entity"
};
string serializedObject = JsonConvert.SerializeObject(entity, defaultSettings);
var deserializedObject = JsonConvert.DeserializeObject<DbEntity>(serializedObjest, defaultSettings);
}
public class DbBulkRequest
{
public DbEntity[] Updates { get; set; }
}
public class DbEntity
{
public object Dto { get; set; }
public string Name { get; set; }
}
public class TestDto
{
public string Value { get; set; }
}
关于.net - 将 JObject 转换为强类型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20847052/