用戶端傳遞的JSON資料:
[ { "category_id": 0, "category_products": [ [ { "para_name": "品牌", "para_val": "海飛絲" }, { "para_name": "生產日期", "para_val": "2015-08-11" } ], [ { "para_name": "品牌", "para_val": "新絲路" }, { "para_name": "生產日期", "para_val": "2015-08-11" }, { "para_name": "適用發質", "para_val": "乾枯、毛躁、油性頭髮" } ] ] }, { "category_id": 1, "category_products": [ [ { "para_name": "品牌", "para_val": "潘婷" }, { "para_name": "生產日期", "para_val": "2015-06-11" } ] ] }]
通過序列化和還原序列化後取出來的資料就和上面的不一樣了!我該怎麼辦?這是在PHP中還原序列化後取出來的資料:
a: 2: { i: 0;O: 8: "stdClass": 2: { s: 11: "category_id";i: 0;s: 17: "category_products";a: 2: { i: 0;a: 2: { i: 0;O: 8: "stdClass": 2: { s: 9: "para_name";s: 6: "品牌";s: 8: "para_val";s: 9: "海飛絲"; }i: 1;O: 8: "stdClass": 2: { s: 9: "para_name";s: 12: "生產日期";s: 8: "para_val";s: 10: "2015-08-11"; } }i: 1;a: 3: { i: 0;O: 8: "stdClass": 2: { s: 9: "para_name";s: 6: "品牌";s: 8: "para_val";s: 9: "新絲路"; }i: 1;O: 8: "stdClass": 2: { s: 9: "para_name";s: 12: "生產日期";s: 8: "para_val";s: 10: "2015-08-11"; }i: 2;O: 8: "stdClass": 2: { s: 9: "para_name";s: 12: "適用發質";s: 8: "para_val";s: 30: "乾枯、毛躁、油性頭髮"; } } } }i: 1;O: 8: "stdClass": 2: { s: 11: "category_id";i: 1;s: 17: "category_products";a: 1: { i: 0;a: 2: { i: 0;O: 8: "stdClass": 2: { s: 9: "para_name";s: 6: "品牌";s: 8: "para_val";s: 6: "潘婷"; }i: 1;O: 8: "stdClass": 2: { s: 9: "para_name";s: 12: "生產日期";s: 8: "para_val";s: 10: "2015-06-11"; } } } }}
回複討論(解決方案)
你的第二段資料是 序列化的
你的第二段資料是 序列化的
試了,確實是沒有還原序列化就取出來就會這樣子。
不過我想還原序列化後再次輸出給用戶端,通過Ajax 返回json,我再次json_encode 還原序列化的資料,通過console.log出來變成[object object] 了,這是正常的嗎?
我不知道你的應用情境
你的第一段資料是 json 串,並不會序列化成第二段資料
console.log出來變成[object object] 是正確的
看到你有stdclass 說明你是對返回的json進行了decode 後面那個json_decode($json,1); true的參數加上
當然 後面urlcode什麼的就看你自己的了
ps 為什麼要多此一舉decode encode 直接序列化反序列好了
我不知道你的應用情境
你的第一段資料是 json 串,並不會序列化成第二段資料
console.log出來變成[object object] 是正確的
我在服務端擷取原始JSON串後,通過json_decode將JSON串轉化成數組對象,然後序列化這個數組對象,賦值給$_SESSION變數。之所以這麼做,因為我的資料是兩級,然後數目不固定。類似百度經驗那樣的後台錄入介面。所以我通過json進行前後台資料傳遞,在最終發布內容之前,先將資料暫存在SESSION中,任何增刪改查都不用經過資料庫(這種方法試過,因為資料關聯為兩層結構,增刪改查非常困難)。
不知我這種做法是否恰當,還有更好的解決方案?
那也沒必要序列化,直接存入 session 就行了
我不知道你的應用情境
你的第一段資料是 json 串,並不會序列化成第二段資料
console.log出來變成[object object] 是正確的
前端介面操作
請問還有更好的解決辦法嗎?
那也沒必要序列化,直接存入 session 就行了
GOOD!果然不需要序列化,多此一舉。Thank You!