Поэтому у меня есть следующий метод F #Можете ли вы вернуть обработанный результат JSONProvider в качестве объекта модели для использования в представлении 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, что я называю этот метод с есть в любом случае использовать этот результат в представлении? Я пробовал только простой доступ с
@Model.FirstName
, но это дает мне исключение
'FSharp.Data.RuntimeImplementation.JsonDocument' does not contain a definition for 'FirstName'
Это мой единственный вариант, чтобы превратить это JsonDocument в строго типизированный объект модели? А потом верните это?
Это использование 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», и он жаловался на то, что DLL ссылается как в файлах FSharp.Data.DesignTime, так и в файлах FSharp.Data. Это расширение отлично работает с F #, но не на стороне C#. Поэтому я, вероятно, займу тип записи, но я надеялся быть ленивым :-) Но я думаю, что благодаря своим новым знаниям F # я могу сделать их быстрее и с меньшими церемониями. Спасибо за быстрый ответ!!! –
Я думаю, что записи - это самый простой вариант ... Что касается DLL, для части C# должен быть нужен только 'FSharp.Data.dll' (' DesignTime' предназначен только для поставщиков типов и вообще не нужен в проекте C# - но, возможно, Visual Studio копирует его там, что может каким-то образом запутать ASP.NET ...) –
Да, он появился вместе с пакетом nuget, когда я добавил его таким образом ... Компилирует без него. Записи оказались хорошо работать, и я также использовал ваши образцы J # JsonToXML F #, которые отлично поработали для преобразования данных JSON в XML-данные, которые я мог бы хранить в XML-полях, поэтому yay для этого :-) –