Can';t使用json.net以F#形式序列化记录

Can';t使用json.net以F#形式序列化记录,f#,json.net,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#,并且有很多帖子都与枚举类型相关,等等,但我还没有看到:我正在尝试序列化一些非常简单的东西 许多帖子指向另一个

一个非常基本的例子:

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

let t = { a = "hello"; b = ["1"; "2"] }
let s = JsonConvert.SerializeObject(t)
这将生成一个空字符串

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

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

我们正在编写与凯龙合作的指南和参考内容,所以请关注更新 有什么明显的我没见过的吗


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

中使用json.net,问题似乎是json.net只序列化F#记录的公共字段。当您将记录标记为
private
时,其所有字段也将变为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"]}

好的,我假设它会跳过private字段,但是如果类型是private,只要我们在相同的上下文中,它就应该可以访问该对象。