Я пытаюсь создать код для отображения типов, порядка и королевства организмов в lblOrganismIdentity
. Во-первых, пользователь должен ввести название вида в tbNameSpecies
. А затем нажмите btProcess
, чтобы запустить метод класса Organism. И имя используется для создания ссылки API. Данные API находятся, например, в этой ссылке . Я не знаю, как сделать данные массивом, а затем отобразить их в lblOrganismIdentity
.
Сообщение об ошибке исключения:
System.Collections.Generic.KeyNotFoundException: 'The given key was not present in the dictionary.'
В этом коде возникает ошибка исключения
JsonObject kingdom = (JsonObject)gbifObj["kingdom"];
Я использую RestSharp и SimpleJson для ссылок. Я пытался найти решения, но не получил этого.
Это исходный код.
Метод GetOrganismList в классе Organism.cs
public static List<string> GetOrganismList(string link)
{
List<string> returnList = new List<string>();
var client = new RestClient(link);
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
JsonObject gbifObj = (JsonObject)SimpleJson.SimpleJson.DeserializeObject(response.Content);
Console.WriteLine(gbifObj);
JsonObject kingdom = (JsonObject)gbifObj["kingdom"];
JsonObject phylum = (JsonObject)gbifObj["phylum"];
JsonObject order = (JsonObject)gbifObj["order"];
returnList.Add((string)kingdom["kingdom"]);
returnList.Add((string)phylum["phylum"]);
returnList.Add((string)order["order"]);
return returnList;
}
Form1.cs
public Form1()
{
InitializeComponent();
}
List<string> identityList = new List<string>();
private IEnumerable<string> identitylist;
private void btProcess_Click(object sender, EventArgs e)
{
DisplayInfo(identityList);
}
private void DisplayInfo(List<string> identityList)
{
string link = "http://api.gbif.org/v1/species/match?&name=" + tbNameSpecies.Text.ToString();
identityList = Organism.GetOrganismList(link);
lblOrganismIdentity.Text = "";
foreach (string item in identityList)
{
lblOrganismIdentity.Text += "- " + item + Environment.NewLine;
}
}
Я ожидаю, что lblOrganismIdentity
может отображать данные вида из пользовательского ввода.
Например:
королевство: Animalia
тип: Chordata
заказ: плотоядное животное