Как скрыть свойства с нулевыми значениями в FSharp.Data JsonProvider?

Этот фрагмент кода:

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 внешней службе, которая не обрабатывает нули. Либо это должно быть целое число, либо все свойство должно отсутствовать. Есть ли способ скрыть свойство code, когда оно null?


person Nikolai Koudelia    schedule 13.02.2019    source источник


Ответы (1)


Вы используете функцию печати объектов FSharp для создания JSON. Он производит JSON-подобный вывод, но, на мой взгляд, он не предназначен для этой задачи. Я бы предложил использовать для этого библиотеку JSON, лично мне нравится использовать https://github.com/Microsoft/fsharplu/wiki/fsharplu.json для этой задачи, так как он создает красивый JSON для различения союзов.

person ajuch    schedule 20.03.2019