2013-11-15 45 views
3

我現在是網絡空氣污染指數的Json值,與Newtonsoft.JsonC#JSON解析一個意外的字符遇到

後大部分網頁都是精品。

但是其中一些可能包含一些特殊字符,我的解析失敗。

代碼如下:

WebClient client = new WebClient(); 
String strJson = client.DownloadString(url); 

JObject jObject = JObject.Parse(strJson); 

然後我嘗試轉換仍然UTF8它沒有工作:

WebClient client = new WebClient(); 
String strJson = client.DownloadString(url); 
byte[] utf8Bytes = Encoding.UTF8.GetBytes(strJson); 
string safeJsonStr= Encoding.UTF8.GetString(utf8Bytes); 
JObject jObject = JObject.Parse(safeJsonStr); 

請幫助!

謝謝

+1

我注意到,這種類型的錯誤與附加的「}」在字符串的結尾通常是相關聯的。我在發現異常的地方做了一個黑客解決方法,試圖用從字符串中刪除的最後一個非空白字符再次解析它。 –

+0

好計劃大衛!我會去檢查錯誤報告並查看哪個字符中斷我的程序然後刪除它。如果我將來得到更多,我將只編碼讀取異常並自動刪除字符。 –

+0

當你說特殊的人物你得到什麼性格?你有沒有檢查源JSON是否真的有效?有時候只需要BOM就可以手動跳過。順便說一句,你應該通過響應頭確定編碼類型。 – Gildor

回答

1

好吧,最後我找到了一種方法。

我看到有一些特殊的語言,我覺得我需要一個解碼或編碼。

然後最後我覺得這個作品:

  client.Encoding = System.Text.Encoding.UTF8; 

      strJson = client.DownloadString(url); 
+0

嘿班尼。我的客戶似乎有同樣的問題。我無法複製它,但其中的一部分會收到完全相同的錯誤。你能幫我重現嗎?什麼人物造成這種情況謝謝。 – Tsury

相關問題