所以我有以下的F#方法您是否可以將解析的JSONProvider結果作爲Model對象返回以在MVC視圖中使用?
static member ReadInstagramSearch() =
let data = Http.Request("https://api.instagram.com/v1/users/search?q=SomeUSer&client_id=someclientid")
let res = FsUserSearch.Parse(data)
res.Data.[0]
如果我有一個C#控制器,我把這種方法用反正是有使用該結果在View?我試着只是
@Model.FirstName
簡單的訪問,但是這給了我一個異常
'FSharp.Data.RuntimeImplementation.JsonDocument' does not contain a definition for 'FirstName'
是我把那JsonDocument成一個強類型Model對象唯一的選擇?然後返回?
這是使用 http://fsharp.github.io/FSharp.Data/library/JsonProvider.html
而且我JsonProvider被定義爲
type FsUserSearch = JsonProvider<"""
{
"data": [{
"username": "jack",
"first_name": "Jack",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_66_75sq.jpg",
"id": "66",
"last_name": "Dorsey"
}]
}""">
好的,這就是我的想法。我正在學習F#的過程中,所以很好奇,如果有一個功能,我不知道..我嘗試了一點擴展方法和C#真的不喜歡他們。我添加了一個使用「FSharp.Data.Json.Extensions」,它抱怨在FSharp.Data.DesignTime和FSharp.Data dll中都引用了該DLL。該擴展從F#中正常工作,但不在C#中。所以我可能會去記錄類型,但我希望是懶惰的:-)但我想我的新F#的知識,我可以使他們現在更快,更少的儀式。感謝您的快速回復! –
我認爲記錄是最簡單的選擇...至於DLL,C#部分應該只需要'FSharp.Data.dll'(「DesignTime」僅用於類型提供程序,並且不應該在C#項目中需要 - 但也許Visual Studio將它複製到那裏,這可能會以某種方式混淆ASP.NET ...) –
是的,當我添加它的時候它與nuget包一起出現......沒有它就很好地編譯。記錄效果很好,我也使用了JsonToXML F#示例,這些示例很好地將JSON數據轉換爲XML數據,我可以將這些數據存儲到XML字段中,以便這樣做:-) –