0

JSON.NET の JsonConvert クラスを使用して、JSON をオブジェクトに逆シリアル化しようとしています。

JSON構造のサンプルで使用しているコード:

var desObj = JsonConvert.DeserializeObject<Market>("{\"success\":\"1\",\"return\":
{\"sellorders\":
[{\"sellprice\":\"0.00001099\",\"quantity\":\"60.00000000\",\"total\":\"0.00065940\"},
{\"sellprice\":\"0.00001100\",\"quantity\":\"1000.00000000\",\"total\":\"0.01100000\"},
{\"sellprice\":\"0.00001105\",\"quantity\":\"60.00000000\",\"total\":\"0.01200\"}]}}");

そして私の市場クラス:

class Market
    {
        [JsonProperty("success")]
        public int Success { get; set; }

        [JsonProperty("sellorders")]
        public List<SellOrder> SellOrders {get; set;}

        [JsonProperty("buyorders")]
        public List<BuyOrder> BuyOrders {get; set;}
    }

    public class SellOrder
    {
        [JsonProperty("sellprice")]
        public decimal SellPrice { get; set; }

        [JsonProperty("quantity")]
        public decimal Quantity { get; set; }

        [JsonProperty("total")]
        public decimal Total { get; set; }
    }

    public class BuyOrder
    {
        [JsonProperty("buyprice")]
        public decimal BuyPrice { get; set; }

        [JsonProperty("quantity")]
        public decimal Quantity { get; set; }

        [JsonProperty("total")]
        public decimal Total { get; set; }
    }

問題を引き起こしているのは、データが「リターン」キーの下にあるという事実です。リターンキーを削除すると、これは完全に機能します。マーケット オブジェクトを次のように動作させるにはどうすればよいですか。

foreach(SellOrder sellorder in desObj.SellOrders)
{
    Console.WriteLine(sellorder.total.ToString());
}

return 属性を動的リストにして、その方法で売り/買い注文を取得して実験してみましたが、何もうまくいかないようです。何か案は?

4

1 に答える 1

1

そんなことできないの?

class Market
    {
      [JsonProperty("success")]
      public int Success { get; set; }
      [JsonProperty("return")]
      public Container Container { get; set; }

    }
    class Container
    {
      [JsonProperty("sellorders")]
      public List<SellOrder> SellOrders { get; set; }

      [JsonProperty("buyorders")]
      public List<BuyOrder> BuyOrders { get; set; }
    }

    public class SellOrder
    {
      [JsonProperty("sellprice")]
      public decimal SellPrice { get; set; }

      [JsonProperty("quantity")]
      public decimal Quantity { get; set; }

      [JsonProperty("total")]
      public decimal Total { get; set; }
    }

    public class BuyOrder
    {
      [JsonProperty("buyprice")]
      public decimal BuyPrice { get; set; }

      [JsonProperty("quantity")]
      public decimal Quantity { get; set; }

      [JsonProperty("total")]
      public decimal Total { get; set; }
}

次に、次のようにデータにアクセスします。

foreach(SellOrder sellorder in desObj.Container.SellOrders)
{
    Console.WriteLine(sellorder.total.ToString());
}
于 2013-08-14T14:08:45.577 に答える