微信小程序大坑:encode后的JSON字符串,JSON.parse解析失败
来源:互联网 发布:简谱制作软件安卓版 编辑:程序博客网 时间:2024/05/17 23:01
今天,遇到微信 JSON 解析的一个大坑。
网上找了好久,没有人记录过相同坑,所以写下来吧。
跨页面跳转,想传递一个对象。于是先将对象,用 infoStr=JSON.stringify(object)转为了字符串。
由于对象中包含 url 属性,JSON.parse 方法无法解析包含“?“、”&”之类的字符,所以先使用了 encodeURIComponent 对整个对象的字符串 infoStr 编码。
字符串传递到目的页后,使用 newObject=JSON.parse(options.infoStr) 转回了对象。
关键的地方来了!!!
在模拟器上,JSON.parse 可以将编码的字符串也顺带解码,也就是说,获得的newObject就是传递前的对象。
但是!在真机上,JSON.parse无法识别编码后的字符串,会导致解析失败!!
最后,我只能在传递前,先将对象中的 url 单独 encode:
object.url=encodeURIComponent(object.url),
再通过infoStr=JSON.stringify(object) ,将对象转为字符串。
传递到目的页后,再使用
newObject=JSON.parse(options.infoStr) ,还原为对象。
最后,使用
newObject.url=decodeURIComponent(newObject.url),将对象中的 url 解码。
微信坑多,且踩且珍惜
阅读全文
1 0
- 微信小程序大坑:encode后的JSON字符串,JSON.parse解析失败
- swift JSON字符串解析 json parse / json decode
- 微信小程序-parse json 错误
- java 解析(parse) json
- JSON.parse()解析单引号错误的问题
- javascript中JSON.parse()与eval()解析json的区别
- JSON.parse 与 eval() 对于解析json的问题
- JSONKit 解析逗号冗余的json字符串失败
- json解析 eval() 和 JSON.parse()
- JSON.parse()和JSON.stringify()用法解析
- JSON.parse()和JSON.stringify()用法解析
- JSON的方法--parse()
- 笔记:关于JSON以及解析JSON的两种方法eval()和JSON.parse()
- JSON对象和JSON字符串以及JSON.parse 函数的使用
- 字符串和json的相互转换---JSON.parse()和JSON.stringify()
- JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
- JSON解析:JSON.stringify()、JSON.parse()和eval(string)
- Erlang 聊天室程序(四) 数据交换格式---json的encode
- mui框架三级城市联动记录
- @ResponseBody 和 @RequestBody 注解的区别
- css 自适应宽度 需要设置的范围标准?
- C#构造函数
- windows下mysql-python安装 (带下载神器)
- 微信小程序大坑:encode后的JSON字符串,JSON.parse解析失败
- iOS NSNotificationCenter 使用姿势详解
- Hibernate常用的接口和类Configuration&SessionFactory(三)
- 支持向量机
- Java8 新特性-函数式接口,以及和Lambda表达式的关系
- JAVA-ML(机器学习第一天)[Dataset 和 Instance]
- UdpTraceWindows
- 日常笔记之getopt函数详解
- JS——避免使用全局变量