如何在FSharp.Data JsonProvider中隐藏具有空值的属性?

时间:2019-02-13 18:19:24

标签: f# type-providers f#-data fsharp.data.typeproviders

这段code

open FSharp.Data

type ColorProvider = JsonProvider<"""
[
  {
    "color": "Red",
    "code": 15
  },
  {
    "color": "Green"
  }
]
""", SampleIsList=true>

let value = ColorProvider.Root(color = "Blue", code = None)

printf "%A" value

产生此JSON:

{
  "color": "Blue",
  "code": null
}

我正在将json传递给不处理null的外部服务。它必须是整数,或者必须缺少整个属性。 有code属性时可以隐藏null属性吗?

1 个答案:

答案 0 :(得分:0)

您正在使用FSharp的对象打印功能来生成JSON。它会产生类似JSON的输出,但我认为这并不意味着该任务。我建议为此使用JSON库,就我个人而言,我喜欢为该任务使用https://github.com/Microsoft/fsharplu/wiki/fsharplu.json,因为它会为Discriminate Unions生成漂亮的JSON。