记录类型的默认值

时间:2015-04-17 13:42:26

标签: f# json.net

假设我有一个记录类型:

type CountHolder = { Counter: int}
type NameCount = { Name: string; Count: CountHolder}

我正在寻找在反序列化以下任一json字符串时使用JSON.NET指定Count属性的默认值的方法:

{"Name":"My Name","Count": null}
{"Name":"My Name"}

例如,我的默认值可以定义为

{ Counter :  0 }

如果我能在JSON.NET序列化管道中找到一个扩展点,允许我在运行时定义一个默认值,我猜这可以解决我的问题。

修改

响应a comment建议我修改我的记录类型以使Count字段可选 - 我宁愿不这样做,因为我的类型被C#代码占用。通过使这个字段成为我的代码的可选消费者将被迫依赖FSharp.Core

1 个答案:

答案 0 :(得分:1)

您可以随时定义NameCount

type NameCount = { Name: string; Count: CountHolder option }

然后处理None