にJSON文字列を変換するのに苦労:私はC# オブジェクトに以下の価格の引用のJSONデータを変換する方法に苦しんでいたオブジェクト
{"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#クラスをどのように構造化するのか分かりません。助けていただければ幸いです!
それはかなりクールなユーティリティです!それはクラス構造を生成しました。次に、必要に応じてフィールドの名前を変更できます。参照いただきありがとうございます! –