[英]Can't deserialize json from CMC
我想从coinmarketcap反序列化json格式以观察价格。 问题是,如果我想要完整的股票行情,而不仅仅是一个硬币,我会报错。 (该类来自json2csharp)
我的问题是,为什么该班级无法使用全部股票? 希望任何人都可以帮助我:)
使用“ 1”硬币可正常工作-> https://api.coinmarketcap.com/v2/ticker/1 “
与所有硬币类不起作用-> https://api.coinmarketcap.com/v2/ticker/ “
类:
public class USD
{
public double price { get; set; }
public double volume_24h { get; set; }
public double market_cap { get; set; }
public double percent_change_1h { get; set; }
public double percent_change_24h { get; set; }
public double percent_change_7d { get; set; }
}
public class Quotes
{
public USD USD { get; set; }
}
public class Data
{
public int id { get; set; }
public string name { get; set; }
public string symbol { get; set; }
public string website_slug { get; set; }
public int rank { get; set; }
public double circulating_supply { get; set; }
public double total_supply { get; set; }
public double max_supply { get; set; }
public Quotes quotes { get; set; }
public int last_updated { get; set; }
}
public class Metadata
{
public int timestamp { get; set; }
public object error { get; set; }
}
public class RootObject
{
public Data data { get; set; }
public Metadata metadata { get; set; }
}
在完全置顶的情况下,您只需要将“数据”元素解析为字符串或数据对象的整数字典,例如
public class RootObjectFullTicker
{
public IDictionary<String, Data> data { get; set; }
public Metadata metadata { get; set; }
}
请注意,您还需要在数据中使max_supply可为空
public double? max_supply { get; set; }
例如,Etherium的max_supply值为空。
强制将RootObject中的属性数据转换为List,还应该删除该对象之前的所有数字并将它们转换为矩阵。 否则,它将转换为未知的同类数据。 invalid_type。
JSON:
{
"data": [
{
"id": 1,
"name": "Bitcoin",
"symbol": "BTC",
"website_slug": "bitcoin",
"rank": 1,
"circulating_supply": 17140637.0,
"total_supply": 17140637.0,
"max_supply": 21000000.0,
"quotes": {
"USD": {
"price": 6740.85,
"volume_24h": 3714600000.0,
"market_cap": 115542462921.0,
"percent_change_1h": -0.51,
"percent_change_24h": -0.41,
"percent_change_7d": 1.88
}
},
"last_updated": 1531181660
},
{
"id": 1027,
"name": "Ethereum",
"symbol": "ETH",
"website_slug": "ethereum",
"rank": 2,
"circulating_supply": 100591615.0,
"total_supply": 100591615.0,
"max_supply": null,
"quotes": {
"USD": {
"price": 474.802,
"volume_24h": 1542270000.0,
"market_cap": 47761099792.0,
"percent_change_1h": -1.25,
"percent_change_24h": -3.07,
"percent_change_7d": -0.16
}
},
"last_updated": 1531181673
}
],
"metadata": {
"timestamp": 1531181347,
"num_cryptocurrencies": 1619,
"error": null
}
}
从JSON生成C#类
public class USD
{
public double price { get; set; }
public double volume_24h { get; set; }
public double market_cap { get; set; }
public double percent_change_1h { get; set; }
public double percent_change_24h { get; set; }
public double percent_change_7d { get; set; }
}
public class Quotes
{
public USD USD { get; set; }
}
public class Datum
{
public int id { get; set; }
public string name { get; set; }
public string symbol { get; set; }
public string website_slug { get; set; }
public int rank { get; set; }
public double circulating_supply { get; set; }
public double total_supply { get; set; }
public double? max_supply { get; set; }
public Quotes quotes { get; set; }
public int last_updated { get; set; }
}
public class Metadata
{
public int timestamp { get; set; }
public int num_cryptocurrencies { get; set; }
public object error { get; set; }
}
public class RootObject
{
public List<Datum> data { get; set; }
public Metadata metadata { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.