0

JSON を解析して C# で一覧表示するのに問題があります。私はJson.netを使ってjsonを解析しています。私の問題は、「値「高」を型に変換する際にエラーが発生しました」というエラーが表示されることです。私を助けてください。

私のjson:

{"sold":{"high":40.64625,"low":35.02,"avg":37.929384985,"buy":40.28,"sell":40.3}}

私のコード:

public class sold
{
    public string high { get; set; }
    public string low { get; set; }
    public string avg { get; set; }
    public string buy { get; set; }
    public string sell { get; set; }

}

   void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        JObject something = JObject.Parse(e.Result);
        IList<JToken> results = something["sold"].Children().ToList();
        IList<sold> searchResults = new List<sold>();
        foreach (JToken result in results)
            {
sold searchResult = JsonConvert.DeserializeObject<sold>(result.ToString());
searchResults.Add(searchResult);
}
4

2 に答える 2

0

プロパティhighはdoubleのタイプであり、販売されたクラスのこの実装で試すことができます

public class sold
{
public double high { get; set; }
public double low { get; set; }
public double avg { get; set; }
public double buy { get; set; }
public double sell { get; set; }
}
于 2013-03-05T14:35:54.180 に答える
0

販売アイテムの配列のラッパー クラスを追加して、配列全体を 1 回の呼び出しで逆シリアル化してみてください。json.net でこれを試したことはありませんが、DataContractJsonSerializer では問題なく動作します。

public class SoldItemList
{
     public SoldItem[] sold { get;set; }
}
public class SoldItem
{
    public double high { get; set; }
    public double low { get; set; }
    public double avg { get; set; }
    public double buy { get; set; }
    public double sell { get; set; }
}
于 2013-03-06T08:22:31.110 に答える