在使用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中都尝试过,但两者都存在相同的问题。
答案 0 :(得分:0)
我终于找到了解决这个问题的方法。它与NewtonSoft.Json程序集有关。看来GAC中的版本与Visual Studio使用的版本之间存在版本冲突。用Visual Studio中的一个替换GAC中的一个即可解决此问题。这是我在此解决方案中找到的文章。
https://billti.github.io/jsdocs/articles/troubleshooting/newtonsoft.html