1

问题: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 的反序列化器找到解决我的问题的方法。我错过了什么?

4

0 回答 0