考虑下面的 F# 片段:
type MyType = {
CrucialProperty: int
OptionalProperty: string option
}
let first = { CrucialProperty = 500; OptionalProperty = Some("Hello")}
let second = { CrucialProperty = 500; OptionalProperty = Some(null)}
let third = { CrucialProperty = 500; OptionalProperty = None}
我希望使用JSON.NET序列化此类型,以便针对上述情况分别获取以下字符串:
{"CrucialProperty":500,"OptionalProperty":"Hello"}
{"CrucialProperty":500,"OptionalProperty":null}
{"CrucialProperty":500}
基本上,问题归结为根据属性的值来包含/排除序列化输出中的某个属性。
我已经找到了一些“OptionConverters”(例如这里),但它们似乎不完全符合我的要求。