最近写一个微信项目时用到了 把对象转成字符串,因为我需要把它存在cookie中,碰到了一些问题,在这里分享一下。
要转换的就是这货~
var FBinf = {
"workPlacesCode": workPlacesCode,
"parentCode": parentCode,
"firstParentCode": firstParentCode,
"categoryCode": categoryCode,
"imgurl":imgurl
}
我们常用的对象转成字符串是:
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
或者
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
但是很遗憾,我用这行代码会报错
而在使用第一种方法的时候出了一个问题就是在android的微信上 不生效!不生效!不生效!
很奇怪的 我用微信官方的开发者工具测试并没有问题,但是在我的手机上就不生效,代码会被打断应该是报错了,就是js无法往下进行。
但这个问题在IOS上没有出现!
于是只好换了一个手动方式:
var jStr = '{';
for(var item in FBinf){
if(item == 'imgurl') {
jStr += '"'+item+'":"'+FBinf[item]+'"'
}else{
jStr += '"'+item+'":"'+FBinf[item]+'",';
}
}
jStr += '}';
//这里做了个判断,如果是最后一个参数,就去掉 “,”。因为这个对象没有长度,所以没法用length判断最后一项。
问题很圆满的解决了,微信也顺利通过,缺点就是使用起来不太方便,如果以后我的对象参数有所改变,这里可能会需要相应的调整(最后一项)。
希望能帮到碰到类似问题的同学!欢迎大家积极讨论,有更好的方法更好~