当JSON.stringify(json)和JSON.parse(json)相互转换报错

报错的返回:Error in onLoad hook: "SyntaxError: Unexpected end of JSON input"

原因:使用JSON.stringify(json)把json转换为字符串的时候,然后通过链接带到另一个页面的时候,由于字段太长,导致字符串丢失,JSON.parse(json)无法转换回来而报错

解决方法:1、在传值页面,转换成字符串之后,也就是JSON.stringify(json)之后,要再进行一步用encodeURIComponent 编码

bg_btn(){
	let that =this;
	let fileList = JSON.stringify(that.fileBox)
	uni.navigateTo({
		url: '/pages/book/addBook?fileList='+encodeURIComponent(fileList)
	})
},

2、接收页:先转换 decodeURIComponent(data),然后在 JSON.parse() 取得json数据 赋值即可

onLoad(options) {
	let fileList = decodeURIComponent(options.fileList)
	this.fileList = JSON.parse(fileList);
},

 

你可能感兴趣的:(微信小程序,前端技巧)