F#类型提供者

Deb*_*ana 3 f# type-providers

我的项目处理存储在基于密钥值的NoSQL数据库中的数据.值部分存储为字节流.我希望类型提供程序根据字节流的模式读取我的数据.数据的模式表示为json架构.我可以使用Json类型提供程序来读取此数据吗?如果没有那么什么可以解决我的问题?

pia*_*ste 5

如果您的数据库将JSON存储为字节流,只需将其解码System.Text.Encoding.UTF8.GetString(UTF8必要时替换为适当的编码),以便将JSON作为常规string.

然后,您可以像在任何其他流上一样在该流上使用JSON类型提供程序,只要您为要使用的类型提供程序提供编译时示例.架构不起作用.

换句话说,您需要提取数据库的JSON内容的完全代表性样本,然后使用该样本声明提供的类型,或者作为直接嵌入代码中的字符串,或者作为开发机器可以访问的文件URI.

只要示例与数据库的实际结构匹配,它就可以在运行时运行.

// embedded in the code
type Simple1 = JsonProvider<""" { "name":"John", "age":94 } """>

// referenced 
type Simple2 = JsonProvider<@"C:\MyProjectFolder\sample.json">
Run Code Online (Sandbox Code Playgroud)