使用可变变量从 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 变量时出错
尝试从我将 lat & long 数据放入的 URL 中获取 JSON 时脚本不起作用