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