gpt4 book ai didi

c# - 将 JSON 文件加载到 ListBox 和 TextBox C#

转载 作者:太空宇宙 更新时间:2023-11-03 15:23:03 25 4
gpt4 key购买 nike

我正在开发 Windows 窗体应用程序。文本框索引可以通过以下代码保存并显示为列表框:

private List<FunctionData> funcParamList = new List<FunctionData>();
...
private void addFuncButton_Click(object sender, EventArgs e)
{
FunctionData funcParams = new FunctionData();
funcParams.blabla1name = blabla1.Text;
funcParams.blabla2name = blabla2.Text;
...
if (funcParams.isValid())
{
funcParamList.Add(funcParams);
functionListBox.Items.Add(functionNameBox.Text);
}

我还再次将对象收集到 TextBox 以使用以下代码进行编辑(通过单击 ListBox 项目):

  private void getParams(FunctionData data)
{
blabla1.Text = data.blabla1name;
blabla2.Text = data.blabla2name;
functionNameBox.Text = data.functionName;
return;
}

private void functionListBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (functionListBox.SelectedItem == null) { return; }
foreach (var obj in funcParamList)
{
if (obj.functionName == functionListBox.SelectedItem.ToString())
{
getParams(obj);
}
}
}

并将它们保存为 JSON 文件:

private void saveFileButton_Click(object sender, EventArgs e)
{
fileName = fileNameBox.Text;
string jsonFunc = JsonConvert.SerializeObject(funcParamList);
System.IO.File.WriteAllText(@"<blablapath>\" + fileName + ".txt", jsonFunc);
}

JSON 文件中有“functionName”对象,我可以用它在 ListBox 上显示。

我的问题是:如何加载此文件购买 native 加载/打开文件对话框并在列表框中显示对象并再次编辑它们?

这里是我尝试使用以下代码实现它的方法,但它不起作用:

private void loadFileButton_Click(object sender, EventArgs e)
{
OpenFileDialog loadFileDialog = new OpenFileDialog();
...

if (loadFileDialog.ShowDialog() == DialogResult.OK)
{
string jsonFileName = loadFileDialog.FileName;
string jsonFile = File.ReadAllText(jsonFileName);

dynamic loadedFile = JsonConvert.DeserializeObject(jsonFile);

//if (functionListBox.SelectedItem == null) { return; }
foreach (var obj in loadedFile)
{
if (obj.functionName != null)
{
functionListBox.Items.Add(obj.functionName);
getParams(obj); // I get exception here
funcParamList.Add(loadedFile);
functionListBox.Refresh();
}

}
}

最佳答案

我通过将“DeserializeObject”转换为 List 解决了这个问题,并且完成了。这里的变化:

            ...

var loadedFile = JsonConvert.DeserializeObject<List<FunctionData>>(jsonFile);

关于c# - 将 JSON 文件加载到 ListBox 和 TextBox C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36498501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com