uniapp开发出现 Error in onLoad hook: "SyntaxError: Unexpected end of JSON input"的错误

426 阅读1分钟

Uniapp踩坑日记 uniapp开发出现 Error in onLoad hook: "SyntaxError: Unexpected end of JSON input"的错误

出现错误原因:

由于JSON.parse无法识别某些URL中的特殊字符比如 & 等特殊符号造成的

解决办法:

//  JSON.stringfy() 用于将 JavaScript 值转换为 JSON 字符串
let data = JSON.stringfy(data)
// encodeURIComponent() :可把字符串作为 URI 组件进行编码,该方法不会对 ASCII 字母和数字进行编  码, 
//也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) ,其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),
//都是由一个或多个十六进制的转义序列替换的
uni.navigateTo({ url: '/pagesHazard/hazard/manage/addEditHazard?data=' + encodeURIComponent(data) })

跳转页面

onLoad (options) {
// decodeURIComponent()可对 encodeURIComponent() 函数编码的 URI 进行解码
// JSON.parse() :用于将一个 JSON 字符串转换为对象
let data = JSON.parse(decodeURIComponent(options.data))
},