gpt4 book ai didi

.net - 将 JObject 转换为强类型对象

转载 作者:行者123 更新时间:2023-12-01 14:59:39 27 4
gpt4 key购买 nike

我正在使用 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));

什么是更有效的解决方案?

最佳答案

添加 TypeNameHandling

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com