问题:Json 反序列化期间偶发错误
我偶尔会在我的 .cs 文件中收到以下 JsonReaderException:
解析值时遇到意外字符:%。路径 '',第 0 行,第 0 位置。
在这行代码中使用 Newtonsoft.Json.JsonConvert 加载和反序列化 JSON 格式的 cookie 对象的代码行:
Dictionary<string, string> Z3Cookie =
JsonConvert.DeserializeObject<Dictionary<string, string>>(MyCookinator.Get("MyZ3"));
The JSON value from cookie as per Firebug = {"a": "4dSlshoOCgkg0zQop1cdZx41llyTzLlli1Ol19fNCK14dSlsh21pluss8qh74dSlshpluss85KnbQeq22eq22", "b": "9999", "c": "11", "d": "0", "e": "4dSlshoOCgkg0zQop1cdZx41llyTzLlli1Ol19fNCK14dSlsh21pluss8qh74dSlshpluss85KnbQeq22eq22", “f”:“/jtemplates/ratesn.html”,“g”:“1”,“h”:“1”,“i”:“0”,“j”:“0”,“k”:“ 0”,“l”:“0”,“m”:“0”,“n”:“0”,“o”:“0”,“p”:“0”,“q”:“0” ,“r”:“0”,“s”:“0”,“t”:“0”,“u”:“0”,“v”:“0”,“w”:“0”,“x”:“0”,“y”:“0”,“z”:“0”}
获取 cookie 值的 MyCookinator 函数 =
public static string Get(string cookieName)
{
var context = HttpContext.Current;
Verify.That(context != null, "HttpContext is not available.");
var responseCookie = GetCookie(context.Response.Cookies, cookieName);
if (responseCookie != null)
{
return responseCookie.Value;
}
var requestCookie = GetCookie(context.Request.Cookies, cookieName);
if (requestCookie != null)
{
return requestCookie.Value;
}
return null;
}
编辑:更多信息= GetCookie 函数是:
private static HttpCookie GetCookie(HttpCookieCollection cookies, string key)
{
if (!cookies.AllKeys.Any(cookieKey => cookieKey == key))
{
return null;
}
return cookies[key];
}
当 cookie 的内容结构没有改变时,我不知道为什么我有时会在这一行出现错误。
帮助..
我在 c# .Net 4.0 站点代码的各个区域中使用 Newtonsoft.Json 没有问题,并希望使用 Newtonsoft 的反序列化器找到解决我的问题的方法。我错过了什么?