MVC服务器端JSON检索

时间:2015-08-01 11:36:29

标签: c# asp.net json asp.net-mvc asp.net-mvc-5

由于数据提供商实施的安全性变更,我们必须修改其中一个项目。目前,系统是开放的,我们直接从源端在客户端实现了ajax数据检索,但是提供商通知他们将实施IP锁定并告诉我们需要实现某种形式的代理。我们考虑了一下,并决定我们应该尝试另一条路线,而是在我们的IIS服务器上加载和缓存他们的数据,并通过对我们自己的服务器的ajax调用将其提供给我们的客户。它还允许我们的BU对数据进行一些汇总分析。

话虽这么说,从控制器代码向外部源发出JSON http / s请求并对服务器端处理反序列化JSON的最佳/推荐方法是什么?如果它很重要,ajax文档的格式是静态的,它不会改变(意思是,如果需要,我们可以为它创建模型类)。

1 个答案:

答案 0 :(得分:4)

我希望这有帮助。我使用类似的东西来制作youtube api调用并将JSON响应转换为我自己的模型。

        "{result: [{ name: \"Joe Doe\", age: 23 }]}"; // json format coming back from external url

        using (var client = new HttpClient())
        {
            var response = await client.GetAsync("URL");

            response.EnsureSuccessStatusCode();

            var content = await response.Content.ReadAsStringAsync();

            dynamic values = JsonConvert.DeserializeObject<dynamic>(content);

            var people = new List<Person>();

            foreach (var item in values.result)
            {
                var person = new Person
                {
                    Name = item.name,
                    Age = item.age
                };

                people.Add(person);
            }

            return people;

人物模型:

    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }