我正在尝试对F#的判别式联合进行单向转换,以字符串方式进行序列化,而不是使用默认的`"Case": [value]`。重新反序列化该值并不是问题。也许可以用Json.NET实现?
// Fsharp 4.1.0
open Newtonsoft.Json // 10.0.3
type HowLame =
| PrettyLame
| SuperLame
type Lame = {
howLame: HowLame;
}
[<EntryPoint>]
let main argv =
let lame = { howLame = PrettyLame }
let ser = JsonConvert.SerializeObject(lame)
// {"soLame":{"Case":"PrettyLame"}} by default
printfn "%s" ser
// Desired
assert (ser = """{"soLame":"PrettyLame"}""")
0 // return an integer exit code