使用可变变量从 Json url 获取值

Posted

技术标签:

【中文标题】使用可变变量从 Json url 获取值【英文标题】:Get value from Json url with a changing variable 【发布时间】: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 做同样的事情,如果你知道如何请帮助:) 提前谢谢你。

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于使用可变变量从 Json url 获取值的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 从 URL 获取值并将其发送到 javascript 变量时出错

如何从url获取参数到变量

尝试从我将 lat & long 数据放入的 URL 中获取 JSON 时脚本不起作用

如何从android中的URL获取json数组而不是html

从 JSON 数组 API 请求中获取值

如何从 json 响应中获取特定的字段值?