2012-02-22 28 views
1

我正在解釋通過具有輸入的一些數據;特別是「M-F 8am - 8pm; Sat-Sum 9 am-10pm」,它正在切斷我的JSON並使我的物體斷裂。我有什麼方法可以解決這個問題?`;`在字符串中導致編碼不起作用

{"id":null,"initPath":"/home","storeLocator":{"queryString":"edina"},"order":{"Store_ID":"10305","Store_Info":"7700 NORMANDALE BLVD, EDINA, MN, 55439","Hours_Of_Operation":"M-F 8am - 8pm; Sat-Sum 9am-10pm","Store_Phone":"111-222-3333","Language_ID":"4"},"orderLabel":{"Order_Summary":"Order Summary","Location":"Pick Up Location:","Hours":"Store Hours:","OC_Participation_Level_Description":"Participation Level:","OC_Type_Name":"Cake Type:","OC_Cake_Design_ID":"Design:","Shape":"Shape:","Size":"Size:","Serves":"Serves:","Price":"Price:","Tax":"Tax:","Total":"Total:","Top_Border_Icing_Color_ID":"Top Border:","Bottom_Border_Icing_Color_ID":"Bottom Border:","Decoration_Comment":"Decoration Comment:","Special_Request_Comment":"Special Request:","Personalization":"Message:","Personalization_Color_ID":"Message Color:","Upload_Image_Filename":"Upload Image:","Quantity":"Quantity:","OC_Salutation_ID":"Message:","Special_Occasion_Comment":"Comments:","Customer_First_Name":"First Name:","Customer_Last_Name":"Last Name:","Pickup_Date":"Pick Up Date:","Phone_No":"Phone Number:","Email_Address":"Email Address:","IP_Address":"IP Address:","Ordering_Device":"Ordering Device:","Ordering_OS":"Ordering OS:","Ordering_Browser":"Ordering Browser:","Store_id":"Store:","Language_id":"Language:","OC_Shape_Size_ID":"Shape Size","Back_Button":"Back","Place_Order_Button":"Place Order","Pickup_Time":"Pick Up Time:","Lead_Time":"Lead Time:","Days":"days","Image":"Image:"},"choices":{},"countryId":"US","languageId":"4"} 

我然後在cookie中得到它的時候回

{"id":null,"initPath":"/home","storeLocator":{"queryString":"edina"},"order":{"Store_ID":"10305","Store_Info":"7700 NORMANDALE BLVD, EDINA, MN, 55439","Hours_Of_Operation":"M-F 8am - 8pm 

我節省了JSON在Cookie中使用該命令

session = $.JSON.encode(session); 
    document.cookie = "dqcakes_session=" + encodeURIComponent(session) + "; path=/"; 
然後分析它早在這個存儲這

並用此解碼

var session = getCookie("dqcakes_session"); 
    session = $.JSON.decode(decodeURIComponent(session)); 

這可能是encodeURIComponent?

我只是使用簡單的解析器爲JSON,它不能這樣。

+1

你可以在這裏包含JSON嗎? – 2012-02-22 16:27:17

+0

我們需要一些代碼來幫助你? – 2012-02-22 16:33:41

+0

只是爲了澄清未來的讀者:現在的答案已納入問題。這兩個javascript應該放在答案中,而不是問題。 – FlipMcF 2012-02-22 23:06:59

回答

1

在將Cookie放入Cookie之前,嘗試對json字符串進行編碼。

手動替換爲'%3b'也可以。

+0

你能解釋downvote,所以我可以編輯我的答案? – FlipMcF 2012-02-22 16:56:15

+0

改變了downvote。 – Dan 2012-02-22 17:03:51

+1

@Dan:具體來說,使用'encodeURIComponent'進行編碼,編碼';',因爲';'是設置cookie時的分隔符。用'decodeURIComponent'稍後解碼。 – 2012-02-22 17:15:49