2017-03-02 32 views
0

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());    
      } 
+0

當我使用的MapPath(),我不使用任何 「〜」(代字號)字符。因此,您應該能夠在MapPath()中輸入「project.Services ...」。此外,請嘗試檢查您的案例中「文件」字符串的值,以查看路徑是否正確。 – Michael

+0

謝謝邁克爾,但那也給了同樣的錯誤。 – Soumika

+0

您是否試過查看「文件」的值?在Windows窗體中,您可以執行「MessageBox.Show(file)」。否則,可以右鍵單擊「使用」,然後選擇「運行到遊標」,然後在執行期間調試程序到達光標點時將鼠標懸停在「文件」上。有一件事你忘記在你的錯誤消息中包含錯誤產生的確切線。我猜「新的StreamReader(文件)」。在錯誤時查看代碼時,雙擊「調用堆棧」項目以查看錯誤發生的位置。 – Michael

回答

0

下面的代碼爲我工作

  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()); 
      }} 

謝謝邁克爾

相關問題