首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JSON反序列化为C#集合

将JSON反序列化为C#集合
EN

Stack Overflow用户
提问于 2014-06-05 11:43:32
回答 1查看 229关注 0票数 0

我使用Newtonsoft.Json将C#对象序列化/反序列化为JSON。我的C#对象具有以下类型的属性:

代码语言:javascript
复制
List<BaseClass> objects { get; set; }

这个集合包含不同的子对象(例如- ChildClass1、ChildClass2)。

序列化到JSON很好,但是在反序列化的同时,它会在集合中创建BaseClass对象(这是显而易见的:)。

有办法在反序列化的同时创建具体的子对象吗?我尝试通过实现CustomCreationConverter<BaseClass>创建一个自定义转换器。但是问题被重写了,Create方法只给出了类型,基于这个类型,我无法决定返回哪个对象(ChildClass1还是ChildClass2)

我的JSON字符串有一个Type属性,通过它我可以标识要创建的子对象。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-05 11:51:46

您可以使用TypeNameHandling选项:

代码语言:javascript
复制
var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }

JsonConvert.SerializeObject(myObject, Formatting.Indented, settings );

TypeNameHandling选项"Auto“确保在子类的序列化JSON中包含类型名称。但是要注意:当类或它们的名称空间被重命名时,这些名称就无效了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24059317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档