使用JSON.NET反序列化具有奇数结构的JSON



我正在尝试使用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; }
    }

给我带来问题的是数据在"return"键下。如果我取下回车键,这将非常有效。我该如何让我的市场对象表现成这样:

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

我尝试过将return属性作为一个动态列表,然后以这种方式检索买卖订单,但似乎什么都不起作用。有什么想法吗?

你不能做这样的事情吗?

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());
}

相关内容

  • 没有找到相关文章

最新更新