Car*_*uez 6 serialization f# json
是否可以使用FsPickler序列化F#中的可选值,以便:
使用以下示例代码:
type Person = { name: string; age: int option }
let data = [
{ name = "Helena"; age = Some(24) };
{ name = "Peter"; age = None }
]
let jsonSerializer = FsPickler.CreateJsonSerializer(true, true)
let streamWriter = new StreamWriter(@"C:\output.json")
let out = jsonSerializer.SerializeSequence(streamWriter, data)
Run Code Online (Sandbox Code Playgroud)
该output.json文件包含以下JSON:
[
{
"name": "Helena",
"age": {
"Some": 24
}
},
{
"name": "Peter",
"age": null
}
]
Run Code Online (Sandbox Code Playgroud)
但我希望JSON文件的内容看起来像这样:
[
{
"name": "Helena",
"age": 24
},
{
"name": "Peter"
}
]
Run Code Online (Sandbox Code Playgroud)
我正在使用FsPickler.Json v3.2.0和Newtonsoft.Json v9.0.1.
更新(2017年1月11日):在下面的答案中使用Stuart链接的要点中的脚本,我得到了这样的工作:
let obj = { name = "Peter"; age = None }
let stringWriter = new StringWriter()
let jsonSerializer = new JsonSerializer()
jsonSerializer.Converters.Add(new IdiomaticDuConverter())
jsonSerializer.NullValueHandling <- NullValueHandling.Ignore
jsonSerializer.Serialize(stringWriter, obj)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
377 次 |
| 最近记录: |