【发布时间】: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; }
}
我真的不明白,为什么没有发生反序列化。请帮帮我。
提前致谢。
两个应用程序都在本地主机上运行
这是错误:
【问题讨论】:
-
出现什么错误?
-
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<ListOfCars>(responseData);吗?
标签: c# json serialization deserialization json-deserialization