序列化接口对象列表



使用json.net,我想对包含接口对象的篮子进行挑选。这个...

{
"Owner": "John",
"Fruit": [ <an apple object>, <a pear>, etc... ]
}

...应该进入这个...

class Basket
{
string Owner;
List<iFruit> Fruit; //contains instances of Apple, Pear,...
}

无法实例化接口,因此需要转换为混凝土对象。我发现了使用jsonConverter创建混凝土苹果和梨实例的示例。但是列表始终是直接用以下行创建的:

List<iFruit> fruit = JsonConvert.DeserializeObject<List<iFruit>>(json, new FruitConverter());

我如何对整个篮子进行挑选,其中jsonconverter仅用于水果清单中的对象?

解决问题的解决方案很简单。

[JsonConverter (typeof(IFruitConverter))]
public interface iFruit
    {
    }

作为旁注,转换器基于此答案。我在返回false的转换器中添加了CanWrite替代,以便在序列化过程中忽略它,并且只有在避免序列化期间才能发挥作用。感谢@blorgbeard!

相关内容

  • 没有找到相关文章

最新更新