Unexpected token o in JSON at position 1

在调试js页面的时候,忽然出现的问题

主要出错的语句是:

$.ajax({
    url: url,
    data:{"appId":appData.appId},
    success: function(json) {
        json=JSON.parse(json);
        ....
    }
});

在解析前台传回来的数据 json时,由于json本身已经是一个Object对象,所以使用JSON.parse()语句进行数据格式转换时发生错误。

最快捷的解决方案是,不进行数据格式转换,也就是删掉

json=JSON.parse(json);

语句即可。

但是后续有出现了一个坑爹的问题,另外一个jsp页面同样调用了这一段语句,调试的时候发现,这里的json对象又要求进行解析了?!!

找了很久没有发现为啥会出现两个页面调用同一个方法,一个接收到的是对象,另外一个接收到的是字符串,采取了一个投机取巧的这种解决方案:

先判断返回的数据的类型,在根据它是否是字符串,决定是否需要进行格式转换。修改后的语句如下:

$.ajax({
    url: url,
    data:{"appId":appData.appId},
    success: function(json) {
        if(typeof json=='string'){
            json=JSON.parse(json);
         }
        ....
    }
});

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值