(Примечание: я новичок!) Я делаю ASP. NET Основной веб-сайт, и мне нужно показать список всех стран с их оценками за рекомендации по путешествиям в таблице. Я не могу отобразить данные с помощью API-интерфейса Travel Advisory. Каждая страна - это отдельный ключ и разные классы, когда я вставляю JSON в качестве классов.
Как я могу вызвать класс каждой страны (например, AU
) и отобразить данные по стране, используя al oop? Проблема в том, что стран слишком много, поэтому я надеюсь использовать для этого al oop. Как вы можете видеть в приведенном ниже коде, я могу отображать только одну страну за раз, поскольку каждая страна относится к другому классу.
Мой TravelAdvisory
метод действия контроллера:
public async Task<ActionResult> Index()
{
string countryCode = "AU"; //I plan to have multiple country codes in a loop,
//just haven't done so yet as I have issues showing the data for all country codes
// Make Web API call to get a list of travel advisories
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://www.travel-advisory.info");
HttpResponseMessage response = await client.GetAsync("/api");
if (countryCode != null)
{
response = await client.GetAsync("/api?countrycode=" + countryCode);
}
if (response.IsSuccessStatusCode)
{
string data = await response.Content.ReadAsStringAsync();
Rootobject model = JsonConvert.DeserializeObject<Rootobject>(data);
float score = model.data.AU.advisory.score;
//here, I can only get the score for one country since class names are different.
List<float> dataList = new List<float>();
dataList.Add(score);
TempData["Score"] = Convert.ToString(score);
return View();
}
else
{
return View(new List<Data>());
}
}
TravelAdvisory
классы моделей:
public class Rootobject
{
public Api_Status api_status { get; set; }
public Data data { get; set; }
}
public class Api_Status
{
public Request request { get; set; }
public Reply reply { get; set; }
}
public class Request
{
public string item { get; set; }
}
public class Reply
{
public string cache { get; set; }
public int code { get; set; }
public string status { get; set; }
public string note { get; set; }
public int count { get; set; }
}
public class Data
{
public AD AD { get; set; }
public AE AE { get; set; }
public AF AF { get; set; }
public AG AG { get; set; }
public AI AI { get; set; }
public AL AL { get; set; }
public AM AM { get; set; }
...
Мой код: