C# 如何使用“打开文件”对话框打开json文件

C# 如何使用“打开文件”对话框打开json文件,c#,json.net,openfiledialog,C#,Json.net,Openfiledialog,我有以下代码将Person对象保存为JSON文件 if (saveWork.ShowDialog() == DialogResult.OK) { string output = JsonConvert.SerializeObject(MyPerson); try { string name = saveWork.FileName; using (

我有以下代码将Person对象保存为JSON文件

if (saveWork.ShowDialog() == DialogResult.OK)
        {
            string output = JsonConvert.SerializeObject(MyPerson);
            try
            {
                string name = saveWork.FileName;
                using (System.IO.StreamWriter sw = new StreamWriter(name))
                    sw.WriteLine(output);
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
现在我正在编写“打开文件”对话框代码,但我被卡住了,我尝试的任何东西似乎都不起作用。这是我现在拥有的代码,他在“file.json”中给出了一个错误。我知道为什么,但我不知道如何获取它的文件名

if (openWork.ShowDialog() == DialogResult.OK)
        {
            DialogResult result = openWork.ShowDialog();
            //Person file = JsonConvert.DeserializeObject(result);

            using (StreamReader r = new StreamReader("file.json"))
            {
                string json = r.ReadToEnd();
                Person items = JsonConvert.DeserializeObject<Person>(json);
            }
        }
if(openWork.ShowDialog()==DialogResult.OK)
{
DialogResult=openWork.ShowDialog();
//Person file=JsonConvert.DeserializeObject(结果);
使用(StreamReader r=newstreamreader(“file.json”))
{
字符串json=r.ReadToEnd();
Person items=JsonConvert.DeserializeObject(json);
}
}

您应该使用OpenFileDialog中的属性文件名来检索文件名

    openWork.CheckFileExists = true;
    if (openWork.ShowDialog() == DialogResult.OK)
    {
        // Check if you really have a file name 
        if(openWork.FileName.Trim() != string.Empty)
        {
            using (StreamReader r = new StreamReader(openWork.FileName))
            {
                string json = r.ReadToEnd();
                Person items = JsonConvert.DeserializeObject<Person>(json);
            }
        }
    }
openWork.CheckFileExists=true;
if(openWork.ShowDialog()==DialogResult.OK)
{
//检查是否确实有文件名
if(openWork.FileName.Trim()!=string.Empty)
{
使用(StreamReader r=newstreamreader(openWork.FileName))
{
字符串json=r.ReadToEnd();
Person items=JsonConvert.DeserializeObject(json);
}
}
}

此外,我还将
CheckFileExists
属性添加为true,以便在用户指定不存在的文件名时显示警告

您应该使用OpenFileDialog中的属性文件名来检索文件名

    openWork.CheckFileExists = true;
    if (openWork.ShowDialog() == DialogResult.OK)
    {
        // Check if you really have a file name 
        if(openWork.FileName.Trim() != string.Empty)
        {
            using (StreamReader r = new StreamReader(openWork.FileName))
            {
                string json = r.ReadToEnd();
                Person items = JsonConvert.DeserializeObject<Person>(json);
            }
        }
    }
openWork.CheckFileExists=true;
if(openWork.ShowDialog()==DialogResult.OK)
{
//检查是否确实有文件名
if(openWork.FileName.Trim()!=string.Empty)
{
使用(StreamReader r=newstreamreader(openWork.FileName))
{
字符串json=r.ReadToEnd();
Person items=JsonConvert.DeserializeObject(json);
}
}
}

此外,我还将
CheckFileExists
属性添加为true,以便在用户指定不存在的文件名时显示警告

查看
OpenFileDialog
上的属性查看
OpenFileDialog
上的属性谢谢,问题解决了,我会选择您的答案,但我需要再等8分钟:)。谢谢谢谢,这个问题解决了,我会选择你的答案,但我需要再等8分钟:)。谢谢