如何使用C#API JSON中的数据在C#MVC视图模型中填充我的模型? [重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

我希望能够从任何地方访问我的数据,所以我创建了一个c#数据API,返回json for gets并接受json的帖子。所有方法都使用HTTPResponseMessage作为返回类型,以便我可以发回适当的响应。

在jquery ajax中它是一个简单易用的东西,它工作得很好但是当我尝试使用c#mvc时,我完全迷失了在哪里以及如何将从我的API返回的数据导入到数据模型中。

我尝试在我的viewModel中使用它。它获得了数据,但接着是什么

    static public object GetProfile()
    {
        string url = "http://localhost:50121/api/Profile/1";
        var client = new WebClient();
        var content = client.DownloadString(url);
        var serializer = new JavaScriptSerializer();
        var jsonContent = serializer.Deserialize<object>(content);
        return jsonContent;
    }

    public readonly object d = GetProfile();

对不起,如果我发布这个错误,我在这里没有问过很多问题。

我只想用api调用返回的json填充我的模型。

c# json api viewmodel
2个回答
0
投票

这一行:

var jsonContent = serializer.Deserialize<object>(content);

应改为:

var jsonContent = serializer.Deserialize<YourModelClass>(content);

其中YourModelClass是您要反序列化的模型。


0
投票

将json直接反序列化到您的模型类(在此示例中为ModelClass,因为您未提供模型类定义)。

using Newtonsoft.Json; 
static public ModelClass GetProfile()
{
    string url = "http://localhost:50121/api/Profile/1";
    var client = new WebClient();

    //object serialised as json string
    var content = client.DownloadString(url);

    //object deserialised as ModelClass
    var model = JsonConvert.DeserializeObject<ModelClass>(json);
    return model;
}
© www.soinside.com 2019 - 2024. All rights reserved.