2012-02-22 7 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 

それを取得し、私は、このコマンドを使用してクッキーに

session = $.JSON.encode(session); 
    document.cookie = "dqcakes_session=" + encodeURIComponent(session) + "; path=/"; 
を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"} 

とこれでデコードする

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

これはおそらくencodeURIComponentですか?

JSON用の単純なパーサを使用しているだけで、それはできません。

+1

ここにJSONを含めることはできますか? –

+0

あなたに役立つコードが必要ですか? –

+0

今後の読者を明確にするために:答えは今質問に組み込まれています。 javascriptの2つの部分は、質問ではなく、答えに配置する必要があります。 – FlipMcF

答えて

1

json文字列を暗号化する前に、json文字列を暗号化するURLを試してください。

'%3b'と手動で置き換えることもできます。

+0

私は私の答えを編集することができますdownvoteを説明することができますか? – FlipMcF

+0

downvoteを変更しました。 – Dan

+1

@Dan:具体的には、 ';'をエンコードする 'encodeURIComponent'を使ってエンコードします。なぜなら'; 'はクッキーを設定する際の区切り文字なのでです。後で 'decodeURIComponent'でデコードしてください。 –

関連する問題