报这个错误的原因是,在将Object 转成json时,再转成Object存在非json格式的特殊字符,如&、?,解决的办法是将转成json的字符再用 encodeURIComponent编码一下,将特殊字符替换,之后再替换回来。
1. 我是在uniapp路由跳转携带参数时遇到
<script setup>
//跳转到详情页的方法
const jumpToDetails = ()=>{
let jsonItem = JSON.stringify({
id:1,name:"张三",
portart:"https://t7.baidu.com/it/u=2405382010,1555992666&fm=193&f=GIF"
});
let encodeData = encodeURIComponent(jsonItem);
uni.navigateTo({
url:`/pages/index/articleDetails?item=${encodeData}`
})
}
//在详情页面接收
import { onLoad } from '@dcloudio/uni-app';
onLoad((option)=>{
//接收传过来的数据
let receiveResult = option.item;
//解码、再转成json 对象
let obj = JSON.parse(decodeURIComponent(receiveResult))
});
<script>