uniapp路由跳转传递参数,json.stringify 遇到%
时间: 2024-09-20 19:08:07 浏览: 40
你可能不知道的JSON.stringify()详解
在UniApp中,路由跳转通常通过`navigator.push`或`navigator.navigateTo`方法,传递参数时可以将数据转化为字符串形式,如JSON格式。当你尝试使用`JSON.stringify`处理包含特殊字符(如%)的数据时,会遇到编码问题。因为`%`表示URL编码,JavaScript默认会对某些字符进行编码以适配URL标准。
例如:
```javascript
let data = { key: 'value with %' };
let encodedData = JSON.stringify(data); // 输出可能是 "{'key': 'value with \%'}"
// 跳转时需要解码,如果接收端是后台API,可以这样做:
let decodedData = decodeURIComponent(encodedData.replace(/%\{2}/g, '%')); // 将 \% 替换回 %
navigator.navigateTo({
url: '/detail?data=' + encodeURIComponent(decodedData), // 对解码后的数据再次编码
});
```
阅读全文