簡體   English   中英

C#如何遍歷單個API調用的列表

[英]C# How to iterate through list for individual API calls

從以下JSON數據中,我想將station_code變量放入列表中。 之后,我想將每個station_code變量用於API URL調用。

{
  "request_time": "2015-02-19T08:33:39+00:00",
  "stations": [
    {
      "station_code": "HWV",
      "atcocode": null
    },
    {
      "station_code": "HXX",
      "atcocode": null
    },
    {
      "station_code": "HAF",
      "atcocode": null
    }
]
}

這是我嘗試過的C#代碼

 dynamic array = JsonConvert.DeserializeObject(json);
        dynamic stations = array.stations;

        var test = JObject.Parse(json);
        var services = test.SelectTokens("stations[*].station_code").Select(t => (string)t).ToList();

        JArray items = new JArray();
        foreach (JObject station in stations)
        {
            items.Add(station["station_code"]);



        }

        int stationLength = 3;

        for (int i = 0; i < stationLength; i++)
        {
            string localJson = get_local_departs("http://transportapi.com/v3/uk/train/station/"+ items[i] + "/live.json?app_id=03bf8009&app_key=d9307fd91b0247c607e098d5effedc97&train_status=passenger");

            dynamic localStationArray = JsonConvert.DeserializeObject(localJson);
            dynamic departures = localStationArray.departures;
            dynamic localStationDeparts = departures.all;

            foreach (var depart in localStationDeparts)
            {
                //info put into data tables

            }
        }
    }

好吧,為什么不能將其轉換為強類型,而使用類似

public class stations
{
  public string station_code { get; set; }
  public string atcocode {get; set; }
}

public class Data
{
 public DateTime request_time {get; set; }
 public IEnumerable<stations> Stations {get; set; }
}

var result = JsonConvert.DeserializeObject<Data>(json);

foreach(stations s in result.Stations)
{
  Console.WriteLine(s.station_code);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM