如何在UPW C#中从Web API反序列化JSON数组?

如何在UPW C#中从Web API反序列化JSON数组?,c#,.net,json,uwp,C#,.net,Json,Uwp,我想连接到BitBayWebAPI,从那里获取数据JSON并将其保存到文件中。我的JSON如下所示: { "status": "Ok", "items": [ { "id": "737a2935-84c9-11ea-8cdc-0242ac11000e", "t": "1587581134890", "a": "0.00926098", "r": "29999", "ty": "Buy" }, {

我想连接到BitBayWebAPI,从那里获取数据JSON并将其保存到文件中。我的JSON如下所示:

{
  "status": "Ok",
  "items": [
    {
      "id": "737a2935-84c9-11ea-8cdc-0242ac11000e",
      "t": "1587581134890",
      "a": "0.00926098",
      "r": "29999",
      "ty": "Buy"
    },
    {
      "id": "6c4474fa-84c9-11ea-8cdc-0242ac11000e",
      "t": "1587581122794",
      "a": "0.02475367",
      "r": "29999",
      "ty": "Buy"
    }
  ]
}
我想从中得到t,a,r和ty。我有密码:

public class TradeModel
    {
        public decimal R { get; set; }
        public decimal A { get; set; }
        public string Ty { get; set; }
        public DateTime T { get; set; }
    }

public class TradeItemModel
    {
        public TradeModel Items { get; set; }
    }

public class TradeProcessor
    {
        public static async Task<TradeModel> LoadTrades( int limit = 1 )
        {
            string url = "";

            if (limit <= 300)
            {
                url = $"https://api.bitbay.net/rest/trading/transactions/BTC-PLN?limit={ limit }";
            }
            else
            {

            }

            using (HttpResponseMessage response = await ApiHelper.ApiClient.GetAsync(url))
            {
                if (response.IsSuccessStatusCode)
                {
                    TradeItemModel trade = await response.Content.ReadAsAsync<TradeItemModel>();

                    return trade.Items;       
                }
                else
                {
                    throw new Exception(response.ReasonPhrase);
                }
            }
        }
    }
公共类交易模型
{
公共十进制R{get;set;}
公共十进制A{get;set;}
公共字符串Ty{get;set;}
公共日期时间T{get;set;}
}
公共类TradeItem模型
{
公共交易模型项{get;set;}
}
公共类交易处理器
{
公共静态异步任务LoadTrades(int limit=1)
{
字符串url=“”;

如果(限制)则
TradeItemModel
类中的
项应为集合
TradeModel[]
列表
,您还可以添加
状态
以检查其是否正常:

public class TradeItemModel
{
    public string Status { get; set; }
    public List<TradeModel> Items { get; set; }
}
公共类TradeItemModel
{
公共字符串状态{get;set;}
公共列表项{get;set;}
}
您还必须将方法签名更改为:

public static async Task<List<TradeModel>> LoadTrades( int limit = 1 )
公共静态异步任务LoadTrades(int limit=1)

我希望这对您有所帮助。

谢谢:)。我还有一个问题,如何在该列表中获取元素,例如,我有按钮和方法,单击我创建变量var tradeInfo=wait TradeProcessor.LoadTrades()的位置;我想在我的文本块中显示trademodel类的R,名称是price?不客气,您有一个包含两个trademodel的集合,所以您需要第一个R或R的总和?第一个R值:
trade.Items.first().R
或sum:
trade.Items.sum(x=>x.R)
。如果我的答案解决了第一个问题,请您将答案标记为“已接受”好吗?是的,没问题,如果可以,我会给您+1。这就是我的全部。是的,您现在可以,您只需要15个声誉就可以投票。因此,要获得R,我的回答有效吗?使用求和或第一个函数?