C# 如何以简化的方式调用JSON
我正在连接一个似乎返回JSON的外部APIC# 如何以简化的方式调用JSON,c#,C#,我正在连接一个似乎返回JSON的外部API using (var client = new APIClient()) { var data = client.General.GetAccountInfo().Data.Balances; } 当我移动到.Data.Balances上时,它显示: IEnumerable<API.Net.Objects.Spot.SpotData.APIBalance> API.Net.Objects.Spot.SpotData.APIAcco
using (var client = new APIClient())
{
var data = client.General.GetAccountInfo().Data.Balances;
}
当我移动到.Data.Balances
上时,它显示:
IEnumerable<API.Net.Objects.Spot.SpotData.APIBalance>
API.Net.Objects.Spot.SpotData.APIAccountInfo.Balances { get; set; }
List of assets and their current balances
我如何使用这些数据,因此如果我键入console.writeline(数据[0][“资产])
,它将为我提供ABC
?Hy,
从示例文件中,您可以创建一个类“余额”
公共阶级平衡
{
公共字符串资产{get;set;}
公共免费。。。。。。。
公众上锁。。。。。
}
然后可以使用Json.net
要反序列化JSon文件
public-void-json()
{
列表余额=JsonConvert.DeserializeObject(数据);
}
}您可以使用以下代码:
public class Balance {
public string asset { get; set; }
public string free { get; set; }
public string locked { get; set; }
}
public class Root {
public List<Balance> balances { get; set; }
}
公共类平衡{
公共字符串资产{get;set;}
公共字符串空闲{get;set;}
公共字符串锁定{get;set;}
}
公共类根{
公共列表余额{get;set;}
}
对于反序列化:
using (var client = new APIClient())
{
var data = client.General.GetAccountInfo().Data.Balances;
Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(data);
Console.WriteLine(myDeserializedClass.balances[0].asset);
}
使用(var client=new APIClient())
{
var data=client.General.GetAccountInfo().data.Balances;
根myDeserializedClass=JsonConvert.DeserializeObject(数据);
Console.WriteLine(myDeserializedClass.balances[0].asset);
}
使用系统;
使用System.Collections.Generic;
使用System.IO;
使用System.Text.Json;
使用System.Text.Json.Serialization;
名称空间游戏
{
公共阶级平衡
{
[JsonPropertyName(“资产”)]
公共字符串资产{get;set;}
[JsonPropertyName(“免费”)]
公共字符串空闲{get;set;}
[JsonPropertyName(“锁定”)]
公共字符串锁定{get;set;}
}
公共类根
{
[JsonPropertyName(“余额”)]
公共列表余额{get;set;}
}
班级计划
{
静态void Main(字符串[]参数)
{
var data=File.ReadAllText(“test.json”);
var deserialized=JsonSerializer.Deserialize(数据);
var余额=反序列化的。余额;
//不要以这种方式迭代!请改用foreach。
对于(int i=0;i
这似乎是最简单的解决方案:
using System.Linq;
using (var client = new APIClient())
{
var data = client.General.GetAccountInfo().Data.Balances.ToList();
Console.WriteLine(data[0].asset);
Console.WriteLine(data[0].free);
Console.WriteLine(data[0].locked);
}
你可能是说newtonsoft。。。也许可以添加nuget链接
using System.Linq;
using (var client = new APIClient())
{
var data = client.General.GetAccountInfo().Data.Balances.ToList();
Console.WriteLine(data[0].asset);
Console.WriteLine(data[0].free);
Console.WriteLine(data[0].locked);
}