Dart中jsonDecode解析复杂JSON字符串失败求助
Dart jsonDecode解析JSON异常的解决方法
你给出的JSON语法本身是完全合法的,出现解析失败大概率是以下几个常见问题:
- 字符串含不可见特殊字符:复制JSON时可能带入零宽空格、非标准引号这类隐藏字符,导致解析失败。可以把字符串复制到本地JSON校验工具里检查,确认没有语法或字符问题。
- 函数引用错误:检查你的代码是否正确导入了
dart:convert,确保用的是官方的jsonDecode,而不是其他库的同名函数。 - 变量命名冲突:你用
json作为变量名,虽然Dart允许,但如果代码里有其他同名变量/函数,可能会导致混淆。可以改成jsonString试试。
给你一个带错误捕获的测试代码,能帮你定位具体问题:
import 'dart:convert'; void main() { var jsonString = '{"errors":[{"code":"INVALID_USER_PASSWORD","status":401,"title":"Invalid user name or password"}]}'; try { final parsedJson = jsonDecode(jsonString); print('解析成功: $parsedJson'); } catch (e) { print('解析错误详情: $e'); } }
如果运行后打印出具体错误,就能针对性解决。比如如果是字符编码问题,可以尝试重新手动输入JSON字符串,避免复制粘贴的隐藏字符。
内容的提问来源于stack exchange,提问作者Sanjay Sahani
相关产品推荐
相关产品推荐

