【发布时间】:2017-12-24 21:35:58
【问题描述】:
我正在尝试在我的宠物 C# 项目中使用他们的 JSON 从WhatToMine 获得前 5 个最赚钱的挖矿币。
问题是这个站点返回的不是一个数组而是一个对象(为了简洁起见,我已经对属性列表进行了排序):
{
"coins":
{
"Hush":
{
"id":168,
"tag":"HUSH",
"algorithm":"Equihash",
},
"Zclassic":
{
"id":167,
"tag":"ZCL",
"algorithm":"Equihash"
}
}
我真的不需要硬币名称,因为标签就足够了,所以我想要这样的东西:
[
{
"id":168,
"tag":"HUSH",
"algorithm":"Equihash",
},
{
"id":167,
"tag":"ZCL",
"algorithm":"Equihash"
}
]
我尝试使用JSON2CSharp,但它生成了一堆具有相同属性的类,每个硬币都有一个。而且由于不断添加新代码,我不想每次都更改代码。
当然,我可以做一些搜索/替换或正则表达式来使 JSON 响应字符串看起来像我需要的那样,但我猜真正的开发人员(我不是其中的一部分)知道反序列化单个对象的更好和更优雅的方法进入列表/数组。
【问题讨论】:
-
这里的答案之一将起作用:stackoverflow.com/questions/4535840/…
-
类名无关紧要,因此您可以使用定义为
{id, tag, algo}之类的CoinItem并将任何/所有类型映射到它 (CoinItem Hush...) -
谢谢你们,我之前看过那个文档和 Rene 的链接,但无法正常工作
标签: c# arrays json object deserialization