2016-07-26 85 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"> 
相關問題