无法使用json.net在F#中序列化记录

时间:2019-11-04 23:27:45

标签: f# json.net

一个非常基本的例子:

type private test =
    {
        a : string
        b : string list
    }

let t = { a = "hello"; b = ["1"; "2"] }
let s = JsonConvert.SerializeObject(t)

这将产生一个空字符串。

我已经看到json.net支持F#,并且有很多与枚举类型相关的帖子,等等,但我还没有:我正在尝试序列化非常简单的内容。

许多帖子都指向另一个名为Chiron的json序列化程序项目,但它在一年前进行了更新,并且仍然像:

  

我们正在与Chiron合作使用指南和参考内容,因此请随时关注更新   有没有明显的东西我没见过?

所以理想情况下,使用json.net会更好,特别是因为我在C#中已经习惯了

1 个答案:

答案 0 :(得分:2)

问题似乎是Json.Net仅序列化F#记录的公共字段。当您将记录标记为private时,其所有字段也将变为私有字段,这些字段将被忽略。以下对我来说是预期的:

type test =
    {
        a : string
        b : string list
    }

let t = { a = "hello"; b = ["1"; "2"] }
let s = JsonConvert.SerializeObject(t)

这将产生预期的JSON:

{"a":"hello","b":["1","2"]}