C#-从API获取数据的更好方法?
我正在尝试创建从C#-从API获取数据的更好方法?,c#,.net,C#,.net,我正在尝试创建从ETH到CZK的货币转换器,并使用API获取我的帐户余额和CZK的实际汇率 我用的是: WebClient client = new WebClient(); string downloadString = client.DownloadString("https://api.nanopool.org/v1/eth/balance/0x1b0cab6db1672349b8f8a6d8d8903ab58ae0d734"); //Console.WriteLine(downloadS
ETH
到CZK
的货币转换器,并使用API获取我的帐户余额和CZK
的实际汇率
我用的是:
WebClient client = new WebClient();
string downloadString = client.DownloadString("https://api.nanopool.org/v1/eth/balance/0x1b0cab6db1672349b8f8a6d8d8903ab58ae0d734");
//Console.WriteLine(downloadString);
downloadString = downloadString.Replace('.', ',');
//Console.WriteLine(downloadString);
string[] first = downloadString.Split(':');
string ETH = first[2].Remove(first[2].Length-1);
Console.WriteLine(ETH);
string downloadString2 = client.DownloadString("https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=CZK");
downloadString2 = downloadString2.Replace('.', ',');
string[] second = downloadString2.Split(':');
string CZK = second[1].Remove(second[1].Length - 1);
Console.WriteLine(CZK);
float eth = float.Parse(ETH);
float czk = float.Parse(CZK);
Console.WriteLine("You have {0} CZK", eth * czk);
是否有更好的方法从API中删除所有其他内容,然后删除数字?谢谢返回一个JSON。您可以使用JSON解析器对其进行解析
请参阅:返回一个JSON。您可以使用JSON解析器对其进行解析
请参阅:返回的字符串是JSON。使用库对其进行反序列化 流行 然后,您可以执行以下操作:
string responseString = client.DownloadString("https://api.nanopool.org/v1/eth/balance/0x1b0cab6db1672349b8f8a6d8d8903ab58ae0d734")
dynamic reponseObj = JsonConvert.DeserializeObject<dynamic>(repsonseString);
double data = responseObj.data;
string responseString=client.DownloadString(“https://api.nanopool.org/v1/eth/balance/0x1b0cab6db1672349b8f8a6d8d8903ab58ae0d734")
dynamic ResponseObj=JsonConvert.DeserializeObject(repsonseString);
双数据=响应bj.data;
返回的字符串是JSON。使用库对其进行反序列化
流行
然后,您可以执行以下操作:
string responseString = client.DownloadString("https://api.nanopool.org/v1/eth/balance/0x1b0cab6db1672349b8f8a6d8d8903ab58ae0d734")
dynamic reponseObj = JsonConvert.DeserializeObject<dynamic>(repsonseString);
double data = responseObj.data;
string responseString=client.DownloadString(“https://api.nanopool.org/v1/eth/balance/0x1b0cab6db1672349b8f8a6d8d8903ab58ae0d734")
dynamic ResponseObj=JsonConvert.DeserializeObject(repsonseString);
双数据=响应bj.data;
卢卡斯
为什么不转换为对象?
我认为你可以创建一个类。
如下:
public class Link1Data
{
public bool status { get; set; }
public float data { get; set; }
}
public class Link2CZK
{
public float CZK { get; set; }
}
然后将代码更改为:
WebClient webClient = new WebClient();
var data = webClient.DownloadString("https://api.nanopool.org/v1/eth/balance/0x1b0cab6db1672349b8f8a6d8d8903ab58ae0d734");
var ethData = JsonConvert.DeserializeObject<Link1Data>(data);
var data2 = webClient.DownloadString("https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=CZK");
var czkData = JsonConvert.DeserializeObject<Link2CZK>(data2);
Console.WriteLine("You have {0} CZK", ethData.data * czkData.CZK);
WebClient-WebClient=new-WebClient();
var data=webClient.DownloadString(“https://api.nanopool.org/v1/eth/balance/0x1b0cab6db1672349b8f8a6d8d8903ab58ae0d734");
var ethData=JsonConvert.DeserializeObject(数据);
var data2=webClient.DownloadString(“https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=CZK");
var czkData=JsonConvert.DeserializeObject(数据2);
WriteLine(“您有{0}CZK”,ethData.data*czkData.CZK);
基于:
我没有测试 卢卡斯
为什么不转换为对象?
我认为你可以创建一个类。
如下:
public class Link1Data
{
public bool status { get; set; }
public float data { get; set; }
}
public class Link2CZK
{
public float CZK { get; set; }
}
然后将代码更改为:
WebClient webClient = new WebClient();
var data = webClient.DownloadString("https://api.nanopool.org/v1/eth/balance/0x1b0cab6db1672349b8f8a6d8d8903ab58ae0d734");
var ethData = JsonConvert.DeserializeObject<Link1Data>(data);
var data2 = webClient.DownloadString("https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=CZK");
var czkData = JsonConvert.DeserializeObject<Link2CZK>(data2);
Console.WriteLine("You have {0} CZK", ethData.data * czkData.CZK);
WebClient-WebClient=new-WebClient();
var data=webClient.DownloadString(“https://api.nanopool.org/v1/eth/balance/0x1b0cab6db1672349b8f8a6d8d8903ab58ae0d734");
var ethData=JsonConvert.DeserializeObject(数据);
var data2=webClient.DownloadString(“https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=CZK");
var czkData=JsonConvert.DeserializeObject(数据2);
WriteLine(“您有{0}CZK”,ethData.data*czkData.CZK);
基于:
我没有测试 响应看起来像一个JSON格式的字符串。您应该使用JSON解析器来正确读取数据。是比较流行的一种。更好,是的。使用HttpClient和Json.NET.Time来了解ab out,我还建议您阅读,以及它如何与
WebClient
连接。响应看起来像一个Json格式的字符串。您应该使用JSON解析器来正确读取数据。是比较流行的一种。更好,是的。使用HttpClient和Json.NET.Time来了解ab out,我还建议您阅读它,以及它与WebClient
的连接方式。谢谢,非常简单:)谢谢,非常简单:)