Как связать данные JSON с полем со списком
Я очень новичок в visual studio. Я пишу программу, которая будет извлекать подпись сотрудника из API, когда его имя вводится и нажимается кнопка "Получить пользователя" (например, если введено имя сотрудника Jane Doe, подпись "JDOE" будет извлечена из строки API, когда имя вводится и нажимается кнопка).
Мне удалось успешно прочитать данные, однако я хотел бы включить поле со списком, чтобы оно предлагало имена при вводе пользователем (аналогично google).
Я попытался подключить данные JSON к полю со списком, используя режим привязки данных задачи поля со списком, однако, хотя он и извлекает подпись, поле со списком не предлагает имен. Пожалуйста, смотрите ниже мой код, который я написал до сих пор.
Заранее большое вам спасибо.
Что я уже пробовал:
Код для определения переменных:
namespace TimeSheet_Try11_Models { public class Employeename { public string signature { get; set; } public string firstName { get; set; } public string fullName { get; set; } public string lastName { get; set; } } public class Root { public List<Employeename> Employeename { get; set; } } }
Мой код для вызова JSON
namespace TimeSheets_Try_11.Controllers { class WebAPI { public string Getsignature(string name) { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; var cookies = FullWebBrowserCookie.GetCookieInternal(new Uri(StaticStrings.UrlIora), false); WebClient wc = new WebClient(); wc.Encoding = System.Text.Encoding.UTF8; wc.Headers.Add("Cookie:" + cookies); wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); wc.UseDefaultCredentials = true; string uri = ""; uri = StaticStrings.UrlIora + name; var response = wc.DownloadString(uri); var status = JsonConvert.DeserializeObject<List<Employeename>>(response); string signame = status.Select(js => js.signature).First(); return signame; } }
Мой код для моей формы windows
namespace TimeSheets_Try_11 { public partial class Form1 : Form { WebAPI WA = new WebAPI(); public Form1() { InitializeComponent(); webBrowser1.Url = new Uri(StaticStrings.UrlIora); } private void label1_Click(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { comboBox1.DataSource = WA.Getsignature(textBox2.Text); comboBox1.DisplayMember = "signature"; comboBox1.ValueMember = "firstName"; } private void textBox2_TextChanged(object sender, EventArgs e) { } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(AutoCompleteStringCollection combData) { } /*private void textBox1_TextChanged(object sender, EventArgs e) { }*/ private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { this.Hide(); Form2 p = new Form2(); p.ShowDialog(); } } }
Строка API-это:
[{"signature":"JDOE","firstName":"Jane","fullName":"Doe, Jane","lastName":"Doe"}]
BillWoodruff
Существует ли риск безопасности, связанный с предоставлением "подсказок" ?