【问题标题】:Cannot Deserialize Json in localhost无法在 localhost 中反序列化 Json
【发布时间】:2018-04-02 14:39:00
【问题描述】:

我有一个应用程序保存了一些虚拟数据:

 public class ValuesController : ApiController
{
    // GET api/values
    public string Get()
    {
        List<Cars> carslist = new List<Cars>();
        carslist.Add(new Cars { Id = "1", Color = "RED", CompanyName = "AUDI", Years = "1993", Model = "A4" });
        carslist.Add(new Cars { Id = "2", Color = "BLUE", CompanyName = "MERCEDES", Years = "1992", Model = "BENZ" });
        carslist.Add(new Cars { Id = "3", Color = "GREEN", CompanyName = "BMW", Years = "1990", Model = "C-CLASS" });
        carslist.Add(new Cars { Id = "4", Color = "YELLOW", CompanyName = "VOLKSWAGEN", Years = "1989", Model = "JETTA" });
        //return carslist;
        //JavaScriptSerializer jss = new JavaScriptSerializer();
        //string jsonstring = jss.Serialize(carslist);
        //return jsonstring;

        string JsonString = JsonConvert.SerializeObject(carslist);
        return JsonString;
    }

JSON 格式化完成后,我从另一个应用程序请求此特定数据,并在那里反序列化,但它总是显示错误。我从中接受此数据的代码如下:

public ActionResult Index()
    {

        Uri url = new Uri(@"http://localhost:51933/api/Values");
        WebRequest webRequest = WebRequest.Create(url);
        WebResponse response = webRequest.GetResponse();
        StreamReader streamReader = new StreamReader(response.GetResponseStream());
        string responseData = streamReader.ReadToEnd().Trim();

        var sdf = JsonConvert.DeserializeObject<List<Cars>>(responseData);

        return View();
    }

模型是这样的

    public class Cars
{
    public string Id { get; set; }
    public string CompanyName { get; set; }
    public string Model { get; set; }
    public string Years { get; set; }
    public string Color { get; set; }

}

public class ListOfCars
{
    public List<Cars> listofcars { get; set; }
}

我真的不明白,为什么没有发生反序列化。请帮帮我。

提前致谢。

两个应用程序都在本地主机上运行

这是错误:

Error

【问题讨论】:

  • 出现什么错误?
  • JsonSerializationException 未被代码处理
  • 错误转换值 "[{"Id":"1","CompanyName":"AUDI","Model":"A4","Years":"1993","Color": "RED"},{"Id":"2","CompanyName":"MERCEDES","Model":"BENZ","Years":"1992","Color":"BLUE"},{"Id ":"3","CompanyName":"BMW","Model":"C-CLASS","Years":"1990","Color":"GREEN"},{"Id":"4", "CompanyName":"VOLKSWAGEN","Model":"JETTA","Years":"1989","Color":"YELLOW"}]" 输入 'System.Collections.Generic.List`1[MainApp.Models 。汽车]'。路径'',第 1 行,位置 404。
  • 为我工作。唔。 ListOfCars 类是怎么回事?你似乎没有在任何地方使用它
  • 你可以试试var sdf = JsonConvert.DeserializeObject&lt;ListOfCars&gt;(responseData); 吗?

标签: c# json serialization deserialization json-deserialization


【解决方案1】:

从带有错误的屏幕截图中,我可以看到您正在尝试反序列化为 ListOfCars 类,而不是 List&lt;Cars&gt;。将类型更改为List&lt;Cars&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 2014-08-30
    • 2018-04-02
    • 2018-10-18
    相关资源
    最近更新 更多