Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 将类型的缺失值反序列化为特定值_F#_Json.net - Fatal编程技术网

F# 将类型的缺失值反序列化为特定值

F# 将类型的缺失值反序列化为特定值,f#,json.net,F#,Json.net,我已经创建了一个名为Skippable的包装器类型= |跳过 |"a"的连载 我有功能正常的转换器,但在反序列化过程中,我希望将缺少的JSON值序列化为DU的Skip情况(而不是当前发生的null) 我知道DefaultValueAttribute,但这只适用于常量值,而且我不想在DTO中的每个Skippable-wrapped属性上使用属性 是否有可能以某种方式告诉Newtonsoft.Json填充某一类型的缺失值(skipable创建skipable结构联合是一种方法,因为默认值(例如,使

我已经创建了一个名为
Skippable的包装器类型=
|跳过
|"a"的连载
我有功能正常的转换器,但在反序列化过程中,我希望将缺少的JSON值序列化为DU的
Skip
情况(而不是当前发生的
null

我知道
DefaultValueAttribute
,但这只适用于常量值,而且我不想在DTO中的每个
Skippable
-wrapped属性上使用属性


是否有可能以某种方式告诉Newtonsoft.Json填充某一类型的缺失值(
skipable创建
skipable
结构联合是一种方法,因为默认值(例如,使用
未选中。defaultOf
)似乎是任何字段的第一种情况(在本例中为无)按其默认值

[<Struct>]
type Skippable<'a> =
  | Skip
  | Serialize of 'a

// Unchecked.defaultof<Skippable<obj>> = Skip
[]

键入Skippable为
Skippable
编写自定义转换器?同意,转换器在这种情况下工作良好。您可以从haf的OptionConverter中获得灵感:转换器在这里似乎没有帮助,因为它似乎没有为输入JSON中完全缺失的属性调用。不过,我找到了一个潜在的修复方法(添加了答案)。
[<Struct>]
type Skippable<'a> =
  | Skip
  | Serialize of 'a

// Unchecked.defaultof<Skippable<obj>> = Skip