2016年1月29日 星期五

Json 解析錯誤(其實是Url 編碼造成的錯誤)

Newtonsoft.Json.JsonReaderException: Unterminated string. Expected delimiter:



本機程式呼叫 ashx 服務時,傳送的Json 字串造成此錯誤。
最近網頁跳出這個錯誤,雖然不常發生,可是就是偶爾會跳出。
本來除錯方向,一直往要把編碼過的Url 根據特定字元再去做一次取代,才不會造成Json格式錯誤

後來我檢查了一下本機的程式,才發現,同事使用了錯誤的編碼,所以造成這個問題。

同事 使用了這個 Uri.EscapeDataString
只要改成 System.Web.HttpUtility.UrlEncode 就正常了。


結論
當使用 Uri.EscapeDataString  時,應該是要編碼A部分

當使用 System.Web.HttpUtility.UrlEncode  時 ,應該是要編碼B部分

 http://www.xxx.com/a.html?a=value1&b=value2
A部分 http://www.xxx.com/a.html    
B部分 value1,value2
 

沒有留言:

張貼留言