在微信小程序中,有时候使用
wx.navigateTo()
跳转页面时要传递过长的参数或者传递一个数组对象会发现传递不过去
情景再现:
发送端 接收端 输出值
我们可以使用以下方法解决:
在发送端对数据进行处理
接收端中,对接收的数据也进行一次处理
在接收端查看输出信息
过程详解:
1、
JSON.stringify()
JSON.stringify()
方法用于将 JavaScript 值转换为 JSON 字符串- 语法:
JSON.stringify(value[, replacer[, space]])
value
:
- 必填,需要转换的JavaScript值(一般为数组或者对象)
replacer
:
- 选填,用于转换结果的数组和函数
- 如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""
- 如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样
space
:
- 选填,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t
- 返回值为包含json文本的字符串
2、
JSON.parse()
JSON.parse()
方法将数据转换为 JavaScript 对象- 语法:
JSON.parse(text[, reviver])
- text:必填,一个有效的json字符串
- reviver:选填,一个转换结果的函数, 将为对象的每个成员调用此函数
3、结合使用
- 我们通过J
SON.stringify()
和JSON.parse()
来实现小程序页面间传递数组对象- 将数组对象转换成json字符串进行传递,传递过去之后又将json字符串还原成数组对象进行使用