FSharp.Data.JsonProvider - 从类型中获取json

Ian*_*att 7 f# type-providers f#-data

FSharp.Data.JsonProvider提供了从json到F#类型的方法.是否可以反向进行,即声明FSharp.Data.JsonProvider创建的其中一种类型的实例,将字段值设置为我需要的值,然后得到等效的json?

我尝试过这样的事情,

type Simple = JsonProvider<""" { "name":"John", "age":94 } """>

let fred = Simple( 
            Age = 5, // no argument or settable property 'Age'
            Name = "Fred")
Run Code Online (Sandbox Code Playgroud)

Gus*_*rra 5

最新版本的 F# Data 现在支持此功能。请参阅http://fsharp.github.io/FSharp.Data/library/JsonProvider.html中的最后一个示例。

你的例子是:

type Simple = JsonProvider<""" { "name":"John", "age":94 } """>
let fred = Simple.Root(age = 5, name = "Fred")
Run Code Online (Sandbox Code Playgroud)


Fsh*_*ete -2

这是 C# 比 F# 更具优势的领域,至少在 Visual Studio 中是这样。您可以将 JSON 示例代码复制到剪贴板,然后在 Visual Studio 中使用“编辑”->“选择性粘贴”->“将 JSON 粘贴为类”,它将创建一个与 JSON 示例匹配的类。从那里您可以轻松地在 F# 中使用该类。

有关特殊粘贴的更多详细信息,请参见此处

希望 F# 也能很快推出匹配功能。