Asp.net 如何反序列化本地存储在项目文件夹中的json文档的数据

Asp.net 如何反序列化本地存储在项目文件夹中的json文档的数据,asp.net,json,c#-4.0,server.mappath,Asp.net,Json,C# 4.0,Server.mappath,项目文件夹中存储了一个json文件。我想反序列化该json文档的数据。我在获取json文档路径时出错 我使用了此代码并得到错误“mscorlib.dll中发生了类型为'System.IO.DirectoryNotFoundException'的异常,但未在用户代码中处理” string file=HttpContext.Current.Server.MapPath(“~/project.Services/xyz/myjsonfile.json”); 使用(StreamReader=新Stream

项目文件夹中存储了一个json文件。我想反序列化该json文档的数据。我在获取json文档路径时出错

我使用了此代码并得到错误“mscorlib.dll中发生了类型为'System.IO.DirectoryNotFoundException'的异常,但未在用户代码中处理”

string file=HttpContext.Current.Server.MapPath(“~/project.Services/xyz/myjsonfile.json”);
使用(StreamReader=新StreamReader(文件))
{
collection=JsonConvert.DeserializeObject(reader.ReadToEnd());
}

下面的代码对我有用

            using (Stream stream = this.GetType().Assembly.GetManifestResourceStream(this.GetType().Assembly.GetName().Name + "." + filename))
         {using (StreamReader reader = new StreamReader(stream))
            {
                collection = JsonConvert.DeserializeObject<Dictionary<string, string>>(reader.ReadToEnd());
            }}
使用(Stream Stream=this.GetType().Assembly.GetManifestResourceStream(this.GetType().Assembly.GetName().Name+“+filename))
{正在使用(StreamReader=新StreamReader(stream))
{
collection=JsonConvert.DeserializeObject(reader.ReadToEnd());
}}

谢谢你,Michael

当我使用MapPath()时,我不使用任何“~”(Tilde)字符。因此,您应该能够在MapPath()中输入“project.Services…”。此外,请尝试检查案例中“file”字符串的值,以查看路径是否正确。谢谢Michael,但这也会产生相同的错误。您是否尝试查看“file”的值?在Windows窗体中,可以执行“MessageBox.Show(文件)”。否则,当调试器在执行过程中到达光标点时,您可以右键单击“使用”并选择“运行到光标”,然后将鼠标移到“文件”上。您忘记在错误消息中包含的一件事是生成错误的确切行。我猜是“新的StreamReader(文件)”。在出错时查看代码时,双击“调用堆栈”项以查看错误发生的位置。
            using (Stream stream = this.GetType().Assembly.GetManifestResourceStream(this.GetType().Assembly.GetName().Name + "." + filename))
         {using (StreamReader reader = new StreamReader(stream))
            {
                collection = JsonConvert.DeserializeObject<Dictionary<string, string>>(reader.ReadToEnd());
            }}