C# 如何以简化的方式调用JSON

C# 如何以简化的方式调用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

我正在连接一个似乎返回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.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);
}