您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

将JSON数据保存到SESSION出现问题

2025/5/15 16:02:19发布34次查看
客户端传递的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!
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product