JOSN.parse()报错Unexpected end of JSON input at JSON.parse (<anonymous>)

 

出现这个错的原因可能是:

若对象的参数或数组的元素中遇到地址,地址中包括?、&这些特殊符号时,对象/数组先要通过JSON.stringify转化为字符串再通过encodeURIComponent编码,接收时,先通过decodeURIComponent解码再通过JSON.parse转换为JSON格式的对象/数组

就比如我们经常用的页面传参,或者使用getStorageSync使用缓存的时候,需要转成josn格式

报错示范

const item = JSON.stringify(row) 
uni.navigateTo({
	url:'/announcement/pages/information/index?item=' + item
})
onLoad(option) {
			this.informationType = JSON.parse(option.item)
			this.communityId = uni.getStorageSync('communityId')
			this.getList()
		},

正确示范

const item = JSON.stringify(row) 
uni.navigateTo({
    url:'/announcement/pages/information/index?item=' + encodeURIComponent(item)
})
onLoad(option) {
			this.informationType = JSON.parse(decodeURIComponent(option.item))
			this.communityId = uni.getStorageSync('communityId')
			this.getList()
		},

希望能帮到你

还有一种情况,就是你返回的就是json格式,你不需要转json,解决办法,可以加个判断

正确示范:

params && JSON.parse(params)

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值