跳转传参报错:SyntaxError: Unexpected end of JSON input

2023-11-10

小程序里面 SyntaxError: Unexpected end of JSON input报错怎么解决


问题背景
小程序,经常有跳转传参的功能,一般带一个id或者name,title之类很短的字段,但是如果带很多数据的话,很多人喜欢使用json转换,传一个对象过去小程序传参但这样仅限于很少的字段,不然就会出现错误,如下图

产生原因
这是因为navigateTo方法携带的参数是有字符串长度限制的,超出部分就无法携带了,这就回导致传递过去的对象不闭合,使用json解析的时候就产生了报错.

解决方法
1、如果业务场景是从列表页面跳转到详情页面,那么推荐只携带少量字段,如id,然后在详情页面使用id请求详情,这样就不用烦心字符长度超出的问题了.(强烈推荐)

2、如果不想请求新的数据,就用列表本身的字段,但是字符串超出的话,可以考虑下面方法.
使用decodeURIComponent 和encodeURIComponent 函数进行操作.

列表页面代码:

  toDetail(e) {
    const item = e.currentTarget.dataset.item
    console.log('需要传递的参数', item)
    wx.navigateTo({
      url: '/pagesA/paramsDetail/paramsDetail?item=' + encodeURIComponent(JSON.stringify(item))
    })
  }

详情页面代码:

  onLoad: function (options) {
    const {
      item
    } = options
    console.log('item', item)
    const detail = JSON.parse(decodeURIComponent(item))
    console.log('detail', detail)
    this.setData({
      detail: detail || {}
    })
  },

encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。 需要编码传送,解码接收.这样就可以解决字符串长度的问题.如图

列表页面图片

详情页面图片

在这里插入图片描述
————————————————
版权声明:本文为CSDN博主「ze1024」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ze1024/article/details/120535615

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

跳转传参报错:SyntaxError: Unexpected end of JSON input 的相关文章

  • An Introduction to Compressive Sensing 压缩感知教材

    rice大学压缩感知的书 想系统性学习CS的可以看看这本书 下载地址 http cnx org exports f70b6ba0 b9f0 460f 8828 e8fc6179e65f 5 12 pdf an introduction to
  • 利用commands模块执行Linux shell命令

    利用commands模块执行Linux shell命令 用Python写运维脚本时 经常需要执行linux shell的命令 Python中的commands模块专门用于调用Linux shell命令 并返回状态和结果 下面是command
  • umask命令

    命令格式 umask 模式 说明 创建文件或目录时的掩码 文件创建的权限默认为666 umask 而目录创建的权限是用777 umask 为什么文件和目录创建时候指定的权限不一样 因为666是777减去了文件的执行权限 也就是用777 11
  • IO网络编程面试题(2022)

    IO 网络编程 1 什么是 IO IO的定义 IO用于实现对数据的输入和输出操作 流是从起源到接受的有序数据 2 常用的 IO 类有哪些 1 字节流 FileInputStream FileOutputStream 2 字符流 FileRe
  • 解决pip install --upgrade pip 升级不成功

    问题描述 使用pip安装第三方模块的时候 提示我pip版本过低WARNING You are using pip version 21 0 1 however version 21 1 1 is available You should c
  • Nvidia TX2 刷机教程 JetPack-L4T-3.0-linux-x64.run

    前言 本教程特别针对刷机被墙的朋友 如果没有被墙 其实按照官方文档一步一步操作就行 这期间我参考了特别多的网页 也去nvidia官方论坛问过 其实截止到2019年2月16日 jetpack3 3 是可以很轻松的被装上的 主要是3 0被墙 而
  • 1. Python的特性和语法

    千里之行始于足下 大家好 我是茶桁 这里是我们 AI秘籍 的第一节 让我们先从Python来开始好好的打好基础 第一堂课 我们先从最基础的Python特性开始 当然 还有一些基本语法 上来就开始讲特性和语法 说明我们将会遗弃惯用的 环境搭建

随机推荐

  • java 获取linux mac_java工具类,在Windows,Linux系统获取电脑的MAC地址、本地IP、电脑名...

    packagecom cloudssaas util importjava io BufferedReader importjava io IOException importjava io InputStreamReader import
  • abc计算机机房建设标准,ABC级数据中心机房建设要求

    ABC级数据中心机房建设要求 由会员分享 可在线阅读 更多相关 ABC级数据中心机房建设要求 7页珍藏版 请在人人文库网上搜索 1 ABC级数据中心机房建设要求一 根据数据中心机房最新设计规范GB50174 2008电子信息系统机房设计规范
  • 图像处理之高斯混合模型

    一 高斯混合模型 现有的图像中目标的分类常用深度学习模型处理 但是深度学习需要大量模型处理 对于明显提取的目标 常常有几个明显特征 利用这几个明显特征使用少量图片便可以完成图像目标分类工作 这里介绍使用高斯混合模型GMM处理图像 二 步骤
  • Python数据分析学习路径图 #CSDN博文精选# #IT技术# #学习路线# #系统化学习# #python#

    大家好 我是小C 又见面啦 文章过滤器 精选大咖干货 助力学习之路 5天20篇CSDN精选博文带你掌握系统化学习方法 专栏将挑选有关 系统化学习方法 的20篇优质文章 帮助大家掌握更加科学的学习方法 在这里 你将收获 快速掌握系统化学习的理
  • springboot框架在页面和postman访问可以debug进入方法,但是接收方接收到是404的问题

    重要性 在使用注解开发的过程中 如果遇到接口能够debug进去 但是接收方接到的是404 导致这种结果的原因是 restController 和 Conroller 这两个注解的导致的 RestController注解相当于 Respons
  • python 第三方库之openpyxl

    一次偶然的机会知道这个第三方库 然后看官方文档 在此记录下我的学习笔记 1 openpyxl openpyxl 是一个第三方库 可以读写excel 文件 2 安装 pip3 install openpyxl 3 如果你的excel文件中包含
  • 命令行程序选项解析函数—getopt

    转载请注明出处 http blog csdn net zhangyang0402 archive 2010 06 14 5671410 aspx 命令行工具下的参数选项有两种 长选项和短选项 短选项以 开头 后面跟单个字母 长选项以 开头
  • LeetCode 160. 相交链表

    题目链接 https leetcode cn problems intersection of two linked lists 思路如下 如果把这两个链表拼接在一起 那么拼接后的两个总链表长度相同 初始 让 pA 指向 headA pB
  • python 离群值_python:删除离群值操作(每一行为一类数据)

    删除有多行字符串的json文件中的离群值 def processhold eachsubject directory newfile filename cmudatacol hold subject 0 json format eachsu
  • 在Unity 5中如何控制检视面板上的属性是否显示?

    当脚本中有大量属性或字段需要在检视面板中调整时 检视面板会变得杂乱无章 有没有什么办法可以自己来管理这些属性是否显示呢 本文就为大家介绍无需自定义检视面板来管理属性显示的方法 首先介绍HeaderAttributes的用法 让大家对控制检视
  • CUDA编译过程

    流程 将test cu代码进行分离 利用cudafe exe 去分离CPU代码和GPU代码 我们可以在生成的中间文件可以看到test cudafe1 cpp和test cudafe1 gpu cicc exe 将根据编译选项 arch co
  • Flutter自定义折线图并添加点击事件

    本篇文章已授权微信公众号 guolin blog 郭霖 独家发布 前言 最近用Flutter做了一个天气类的app 我也是新手 对flutter理解还不是很深入 但是开发过程中的编程思想给了我很大的启发 Dart语言特性很优秀 单线程模型
  • 真正帮你实现—MapReduce统计WordCount词频,并将统计结果按出现次数降序排列

    项目整体介绍 对类似WordCount案例的词频统计 并将统计结果按出现次数降序排列 网上有很多帖子 均用的相似方案 重写某某方法然后 运行起来可能会报这样那样的错误 这里实现了一种解决方案 分享出来供大家参考 编写两个MapReduce程
  • SyncTools--->备份数据工具类

    只提供了一个接口 Sync
  • CSS中 z-index 的用法

    语法 z index auto 数值 inherit 参数 数值 数值即是盒子在当前的堆叠环境中的堆叠层次 这个盒子也会建立一个新的堆叠环境 auto 生成的盒子的堆叠层次在当前堆叠环境中是0 除非它是根元素 否则它不会建立一个新的堆叠环境
  • php开启xdebug扩展,PHP添加Xdebug扩展的方法

    PHP添加Xdebug扩展的方法 发布于 2014 11 28 12 15 54 143 次阅读 评论 0 来源 网友投递 Xdebug开源PHP程序调试器Xdebug是一个开放源代码的PHP程序调试器 即一个Debug工具 可以用来跟踪
  • RecycleView使用GridLayoutManager 中item显示不居中问题

    项目效果图就不截了 徒手画一个 将就一下 1 问题分析 图中 处是item距离手机边界的距离 我想刚开始使用GridLayoutManager的时候大部分人都会遇到这种距离不相等问题 在不理解原因的情况下 根布局咔咔一顿改也许你慢慢地就能找
  • 适配IPv6遇到的坑,终极解决方案

    6 1AppStore发布之后的应用要兼容IPv6 然而我上个星期发布的版本并没有因为没兼容而被拒 这次提交却遇到IPv6兼容问题 话不多说 上代码 NSString getIPWithHostName const NSString hos
  • Java中的多态和接口

    目录 1 多态 1 1 什么是多态 1 2 为什么使用多态 1 3 如何实现多态 1 4 向上转型 向下转型 2 抽象类 2 1 概念 2 2 抽象类和抽象方法的定义 3 接口 3 1 概念 3 2 java中的接口 3 3 接口特点 4
  • 跳转传参报错:SyntaxError: Unexpected end of JSON input

    小程序里面 SyntaxError Unexpected end of JSON input报错怎么解决 问题背景 小程序 经常有跳转传参的功能 一般带一个id或者name title之类很短的字段 但是如果带很多数据的话 很多人喜欢使用j