【问题标题】:Get value from Json url with a changing variable使用可变变量从 Json url 获取值
【发布时间】:2021-08-05 09:24:19
【问题描述】:

我想从 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 做同样的事情,如果你知道如何请帮助:) 提前谢谢你。

【问题讨论】:

    标签: c# json unity3d


    【解决方案1】:

    对于这样的事情,你可以使用老旧的SimpleJson

    这里您不需要实现整个 c# 结构,而是通过它的 ID 逐个字段地访问数据。你可以把它想象成一个嵌套的字典之类的东西。

    只需从项目中某处的链接中创建具有给定内容的文件,然后执行例如

    var json = JSON.Parse(the_JSON_string);
    var usdt = json["Data"]["bst"]["usdt"].AsFloat;        
    

    【讨论】:

      猜你喜欢
      • 2011-09-28
      • 2020-09-02
      • 1970-01-01
      • 2014-02-02
      • 2019-07-22
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多