c# - Json.Net 中仅一种类型的自定义序列化程序
问题描述
Json.Net 中有什么方法可以告诉它像往常一样序列化大多数类型,但是要使用我在发现 x 类型的对象时提供的自定义序列化程序?
本质上,这里的想法是 AFAIK,如果您想对 Json.Net 中的类型使用自定义序列化,您必须指定在类型内部如何完成,例如。通过实现 ISerializable 或使用属性。但是,如果我无权访问该类型,则无法修改该类型的序列化。
相反,我想知道我是否可以将该信息注入 jsonConverter,以便它知道对类型使用自定义序列化。
假设我想做这样的事情:
class A
{
B B {get; set;}
}
class B
{
}
BSerializer : ISerilalizer<B>
{
public string Serialize(B obj) => "This is a B"
}
...
JsonConverter.SerializeObject(new A{B = new B()}, new BSerializer())
而这个序列化的结果将是
{
"B" : "This is a B"
}
现在显然这个接口不存在,但我可以使用 Json.Net 提供的现有 API 做类似的事情吗?
解决方案
推荐阅读
- google-workspace-add-ons - 尝试与其他人共享电子表格,但当其他人运行它时,它继续出错并出现以下问题。有什么解决办法吗?
- visual-studio-2019 - SCC 项目数不等于 Visual Studio 中的项目数
- shell - 如何将元素插入到shell中的列表中
- r - 如何在 R 中系统地读取文件
- vb.net - DataGridView 选定的行索引
- azure - Web 服务部署 Azure ML
- reactjs - 解析错误:render() 上缺少分号
- powershell - ParseExact 无法识别“Mdyyyy”格式
- mongodb - 使用 Mongo DB 地图集的 AWS 服务器上的节点项目中的数据获取错误
- excel - VBA 线程注释位置作为超链接