2012-08-01 43 views
1

我有一个网站的cookie,其中的值是一个JSON对象。我在我的服务器代码中将其序列化为特定类型,并在作为cookie返回时返回到JSON。一切工作正常,但现在我需要在javascript中写入cookie。JSON.stringify URL编码的json的cookie导致“无效的JSON原始”

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

我宁愿得到这个想通了,在客户端,因为所有现有的用户有不url编码的cookie。

我需要一个JS JSON序列化,不以UrlEncode!

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%20false%0A%7D

应该看起来像:

{ “ClientGuid”: “2bb1c08a-0813-4739-8f09-9e9576e6f626”, “用户ID”:3601, “OrganizationId”:空, “单位名称”:空, “CAMPAIGNID”:87, “ EmailAddress的“:空, ”LastCommodityId“:157, ”LastRegionId“:1, ”LastCategoryId“:5, ”LastSpmId“:0, ”LastSpmCategoryId“:0, ”ShowDetailsAllCommodities“:假 }

回答

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")