2012-08-01 80 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")