ReadAsAsync Json反序列化

时间:2018-07-26 17:31:04

标签: c# json

在使用ReadAsAsync将反序列化为从Web服务返回的JSON对象列表时,我遇到了问题。结果列表具有正确的记录数,但是对象上的所有属性均为空。奇怪的是,相同的代码对我的同事来说很好用,而在其他解决方案中对我来说也可以。我将代码简化为:

  var response = new System.Net.Http.HttpResponseMessage();
            response.Content = new System.Net.Http.StringContent(@"{""Currency"": ""USD""}", System.Text.Encoding.UTF8, "application/json");
            var prices = response.Content.ReadAsAsync<Price>().Result;

  public class Price
    {
        public string Currency { get; set; }
    }

这将很好地执行,但是Currency属性将为null。我尝试将此代码复制到空白的ASP.NET MVC解决方案中,并且工作正常。我也在Visual Studio 2015和2017中都尝试过,但两者都存在相同的问题。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决这个问题的方法。它与NewtonSoft.Json程序集有关。看来GAC中的版本与Visual Studio使用的版本之间存在版本冲突。用Visual Studio中的一个替换GAC中的一个即可解决此问题。这是我在此解决方案中找到的文章。

https://billti.github.io/jsdocs/articles/troubleshooting/newtonsoft.html