1

我有一个站点 cookie,其值为 JSON 对象。我将其序列化为服务器代码中的特定类型,并在作为 cookie 传回时返回 JSON。一切正常,但现在我需要在 javascript 中写入 cookie。

我遇到的问题是 JSON.stringify 是 URLEncoding RAW 值,这在服务器端调用 JavascriptSerializer.Deserialize 时导致“无效 JSON 原语”。它不知道如何处理 URLEncoding。

我宁愿在客户端弄清楚这一点,因为所有现有用户都有未进行 urlencoded 的 cookie。

我需要一个不进行 URLencode 的 JS JSON 序列化程序!

RAW 数据如下所示:

%7B%0A%20%20%22ClientGuid%22%3A%20%222bb1c08a-0813-4739-8f09-9e9576e6f626%22%2C%0A%20%20%22UserId%22%3A%203601%2C%0A%20 %20%22OrganizationId%22%3A%20null%2C%0A%20%20%22OrganizationName%22%3A%20null%2C%0A%20%20%22CampaignId%22%3A%2087%2C%0A%20%20 %22EmailAddress%22%3A%20null%2C%0A%20%20%22LastCommodityId%22%3A%20157%2C%0A%20%20%22LastRegionId%22%3A%201%2C%0A%20%20%22LastCategoryId %22%3A%205%2C%0A%20%20%22LastSpmId%22%3A%200%2C%0A%20%20%22LastSpmCategoryId%22%3A%200%2C%0A%20%20%22ShowDetailsAllCommodities%22 %3A%20错误%0A%7D

应该看起来像:

{ “ClientGuid”:“2bb1c08a-0813-4739-8f09-9e9576e6f626”,“UserId”:3601,“OrganizationId”:null,“OrganizationName”:null,“CampaignId”:87,“EmailAddress”:null,“LastCommodityId” :157,“LastRegionId”:1,“LastCategoryId”:5,“LastSpmId”:0,“LastSpmCategoryId”:0,“ShowDetailsAllCommodities”:假}

4

1 回答 1

0

在将原始数据发送到服务器之前,对原始数据使用decodeURIComponent :

 decodeURIComponent("%7B%0A%20%20%22ClientGuid%22%3A%20%222bb1c08a-0813-4739-8f09-9e9576e6f626%22%2C%0A%20%20%22UserId%22%3A%203601%2C%0A%20%20%22OrganizationId%22%3A%20null%2C%0A%20%20%22OrganizationName%22%3A%20null%2C%0A%20%20%22CampaignId%22%3A%2087%2C%0A%20%20%22EmailAddress%22%3A%20null%2C%0A%20%20%22LastCommodityId%22%3A%20157%2C%0A%20%20%22LastRegionId%22%3A%201%2C%0A%20%20%22LastCategoryId%22%3A%205%2C%0A%20%20%22LastSpmId%22%3A%200%2C%0A%20%20%22LastSpmCategoryId%22%3A%200%2C%0A%20%20%22ShowDetailsAllCommodities%22%3A%20false%0A%7D")
于 2013-03-12T18:47:58.747 回答