在谷歌下之只能这样子了。
[{"goodsNo":"1","buyNum":"1"},{"goodsNo":"1","buyNum":"1"}]
我是想继续添加对象,期望是下面这个样子的
[{"goodsNo":"1","buyNum":"1"},{"goodsNo":"1","buyNum":"1"},{"goodsNo":"1","buyNum":"1"}]
[{"goodsNo":"1","buyNum":"1"},{"goodsNo":"1","buyNum":"1"},{"goodsNo":"1","buyNum":"1"},...,...]
IE下没有任何问题
不好意思, 问题没有描述清楚
var $goodsNo = $('#goods-no').val();
var $buyNum = $('#buy-num').val();
var goods = new Object();
goods.goodsNo = $goodsNo;
goods.buyNum = $buyNum;
var cookieValue = getCookie("goods");
if (cookieValue == "") {
console.log("empty");
var arr = [];
arr.push(goods);
var jsonStr = JSON.stringify(arr);
} else {
var oldGoodsValue = base64Decode(cookieValue);
console.log(oldGoodsValue);
var jsonObject = JSON.parse(oldGoodsValue);
jsonObject.push(goods);
var jsonStr = JSON.stringify(jsonObject);
}
setCookie("goods", base64Encode(jsonStr), 3000);
我把JSON串(oldGoodsValue)转成json对象数组的时候出现了错误, 也就是
var jsonObject = JSON.parse(oldGoodsValue);
这句话出现了错误。
错误信息是这条Uncaught SyntaxError: Unexpected token
oldGoodsValue值是
[{"goodsNo":"1","buyNum":"1"},{"goodsNo":"1","buyNum":"1"}]
可能是字符没有转义导致无法处理。。我刚在控制台上给他们转义就可以了。
但是有一个问题, 为什么它不自动转义,虽然说可以手动转义但是遇到内容带有引号的怎么处理?
问题解决了, 是base64解码函数出现问题了。。
不知道你想怎么样, 问题能描述清楚一点?