使用ContractResolver和JsonConverter(JSON.NET)进行序列化

时间:2017-07-24 17:13:00

标签: c# json json.net

如果我使用自定义json转换器,我应该考虑合同解析器吗?

由于自己的json转换器从未调用合同解析器,我遇到了一个问题...

如果我应该这样做......那么通常的做法是什么?我找不到任何有关这方面的信息......

1 个答案:

答案 0 :(得分:0)

From documentation

  

将JsonConverter传递给SerializeObject或DeserializeObject   提供了一种完全改变对象方式的简单方法   序列化。但是,有少量的开销;该   为每个值调用CanConvert方法来检查是否   序列化应该由JsonConverter处理。有一个   几种方法继续使用JsonConverters没有任何开销。   最简单的方法是使用。指定JsonConverter   JsonConverterAttribute。此属性始终告诉序列化程序   在序列化和反序列化类型时使用该转换器,   没有检查。

但是

  

如果您要转换的课程不是您自己的课程,而您却无法完成   使用一个属性,仍然可以通过创建你的JsonConverter来使用它   拥有IContractResolver。