我想从 BitZ api 获取任何加密货币的价格。 我有这样的代码:
string coinName;
string jsonURL = "https://apiv2.bitz.com/Market/coinRate?coins=" + coinName;
我会给变量 coinName 我想要的值,例如 coinName = "btc" 并且我想要 USDT 的价格 这里的问题是包含硬币名称的 Json 结构,如果对每个硬币都这样做,我最终会得到大量代码行,
public class Btc
{
public string usdt { get; set; }
}
public class Data
{
public Btc btc { get; set; }
}
public class Root
{
public int status { get; set; }
public string msg { get; set; }
public Data data { get; set; }
public int time { get; set; }
public string microtime { get; set; }
public string source { get; set; }
}
与 Bittrex api 不同,例如使用来自统一存储的 JsonDotNet 资产更容易阅读和:
BittrexJsonUrl = "https://api.bittrex.com/api/v1.1/public/getticker?market=USDT-" + coinName;
然后我使用此代码获取数据:
private IEnumerator GetData()
{
/////bittrex
UnityWebRequest request = UnityWebRequest.Get(BittrexJsonUrl);
yield return request.SendWebRequest();
if (request.error == null)
{
Bittrex_proccessJsonData(request.downloadHandler.text);
}
else
{
Debug.Log("Something went wrong!!");
}
}
private void Bittrex_proccessJsonData (string _url) {
var _bittrexJsonData = JsonConvert.DeserializeObject<BittrexJsonData>(_url);
bittrexPrice = _bittrexJsonData.result.Last;
}
这与 bittrex 的 Json 结构完美配合,因为它不包含硬币名称,我所做的只是更改 Json URL。 现在我想为 BitZ 做同样的事情,如果你有任何想法,请帮忙:) 提前谢谢你。
答案 0 :(得分:1)
对于这种情况,您可以使用旧的 SimpleJson
。
在这里您不需要实现整个 c# 结构,而是通过它的 ID 逐个字段访问数据。你可以把它想象成一个嵌套的字典之类的东西。
只需使用项目中某处链接中的给定内容创建该文件,然后执行例如
var json = JSON.Parse(the_JSON_string);
var usdt = json["Data"]["bst"]["usdt"].AsFloat;