【发布时间】:2016-11-04 14:55:44
【问题描述】:
我正在努力解决如何将以下报价 JSON 数据转换为 C# 对象:
{"MyFeed":
{"@Provider":"SomeProvider","MMM":
{"@name":"3M Corp","low":"194.80","high":"136.78","change":"2.80","pctchange":"0.22","ask":"135.15","bid_time":"20161104131845","bid":"134.80"}
}}
我像这样创建了一个 C# 类:
public class Quote
{
public string Provider { get; set; }
public Data Info { get; set; }
}
public class Data
{
public string name { get; set; }
public decimal low { get; set; }
public decimal high { get; set; }
public decimal change { get; set; }
public decimal pctchange { get; set; }
public decimal ask { get; set; }
public DateTime bid_time { get; set; }
public decimal bid { get; set; }
}
然后,在代码中,我使用HttpWebRequest 获取数据,它运行得很好。但是反序列化 JSON 数据的步骤不起作用。它不会抛出错误,只是没有数据。该代码是:
var request = HttpWebRequest.Create(new Uri("<request URL here>")) as HttpWebRequest;
request.Method = "POST";
var response = request.GetResponse();
using (Stream stream = response.GetResponseStream())
{
using (var reader = new StreamReader(stream))
{
Quote quote = JsonConvert.DeserializeObject<Quote>(reader.ReadToEnd());
lblPrice.Text = string.Format("{0:c}", quote.Data.ask);
}
}
我单步执行了代码,所以我知道 Web 请求正在运行并返回一个 JSON 字符串。我只是不知道如何构造 C# 类来接受反序列化的数据。帮助将不胜感激!
【问题讨论】:
标签: c# asp.net json json-deserialization