如何反序列化项目文件夹中本地存储的json文档的数据
问题描述:
json文件存储在Project文件夹中。我想反序列化该json文档的数据。在获取json文档的路径时出现错误。如何反序列化项目文件夹中本地存储的json文档的数据
我用这个代码,并出现错误“类型的异常‘System.IO.DirectoryNotFoundException’mscorlib.dll中发生,但在用户代码中没有处理”
string file = HttpContext.Current.Server.MapPath("~/project.Services/xyz/myjsonfile.json");
using (StreamReader reader = new StreamReader(file))
{
collection = JsonConvert.DeserializeObject<Dictionary<string, string>>(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());
}}
谢谢迈克尔
当我使用的MapPath(),我不使用任何 “〜”(代字号)字符。因此,您应该能够在MapPath()中输入“project.Services ...”。此外,请尝试检查您的案例中“文件”字符串的值,以查看路径是否正确。 – Michael
谢谢迈克尔,但那也给了同样的错误。 – Soumika
您是否试过查看“文件”的值?在Windows窗体中,您可以执行“MessageBox.Show(file)”。否则,可以右键单击“使用”,然后选择“运行到游标”,然后在执行期间调试程序到达光标点时将鼠标悬停在“文件”上。有一件事你忘记在你的错误消息中包含错误产生的确切线。我猜“新的StreamReader(文件)”。在错误时查看代码时,双击“调用堆栈”项目以查看错误发生的位置。 – Michael