2016-07-26 88 views
3

我的项目处理存储在基于关键值的NoSQL数据库中的数据。值部分存储为字节流。我希望类型提供程序根据字节流的模式读取我的数据。模式的数据表示为json模式。我可以使用Json类型提供程序来读取这些数据吗?如果没有,那么我的问题可以解决什么问题?F#类型提供者

+0

你的意思是像bson?例如Mongodb?你能提供一些更具体的细节吗? – s952163

+1

请求澄清:你的数据是一个字节数组(byte []')。该字节数组的模式在JSON文档(或JSON模式)中描述?如果是这样,JSON类型的提供者不能帮助你。为了更好的回答,我认为你需要提供一些例子。 – FuleSnabel

回答

5

如果您的数据库存储JSON作为一个字节流,只需通过System.Text.Encoding.UTF8.GetString对其进行解码,以获得JSON作为常规string(用适当的编码在必要时更换UTF8)。

然后,你可以,只要你提供一个编译时样品类型提供商使用使用JSON类型提供像对其他任何流,该流。架构不起作用。

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

只要样本符合数据库的实际结构,它就会在运行时工作。

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

// referenced 
type Simple2 = JsonProvider<@"C:\MyProjectFolder\sample.json"> 
相关问题