flutter - 如何在 Flutter 中解决“期望一个‘int’类型的值,但得到一个‘String’类型的值”
问题描述
我有一个本地 JSON 文件,如下所示:
[
{
"1": [
{
"mode": "text",
"value": "text exapple1"
},
{
"mode": "latex",
"value": "\frac00"
},
{
"mode": "text",
"value": "text exapple2"
},
{
"mode": "latex",
"value": "\frac00"
},
{
"mode": "text",
"value": "text exapple3"
}
]
},
{
"2": [
{
"mode": "text",
"value": "text exapple4"
}
]
}
]
我正在尝试在我的代码中使用 FutureBuilder 解析它:
return FutureBuilder(
future:
DefaultAssetBundle.of(context).loadString("assets/paragraph.json"),
builder: (context, snapshot) {
var mydata = json.decode(snapshot.data.toString());
if (mydata != null) {
return SizeTransition(
axis: Axis.vertical,
sizeFactor: animation,
child: Center(child: Text(mydata["1"][0].toString()))
);
} else {
return SizeTransition(
axis: Axis.vertical,
sizeFactor: animation,
child: Center(child: CircularProgressIndicator())
);
}
});
这是我收到的错误消息:
theftion trible tribrars捕获的例外╞═════════════════════════════════════════ ══════════════════ 在构建FutureBuilder(脏,状态:_FutureBuilderState#4fb8d)时抛出了以下TypeErrorImpl:需要一个'int'类型的值,但得到一个'类型'细绳'
如果我这样做:
mydata[1][1]
它给了我一个空输出!
这段代码有什么问题以及如何修复它?
解决方案
您的 JSON 在顶层表示一个数组,因为它以[
. 因此,您必须使用整数索引而不是字符串来访问元素。在第二级,您有地图对象。所以我认为mydata[2]["2"]["mode"]
应该给你“文本”。或者您希望使用特定访问从您的 JSON 输出什么?
推荐阅读
- rest - 如何使用 REST API 访问与套件 crm 中的模块相关的表的数据
- sql - 将两列合并为一列
- python - numpy 索引数组抛出越界异常
- javascript - 如何在 React 中映射具有动态键的对象?
- php - 我可以在 PHP 类方法中使用没有 $this 的变量吗?
- ruby - test2.rb:15:in `
':未定义的方法“存在吗?” 对于“skilleddev”:字符串(NoMethodError) - ios - iOS Swift Only run on the main thread error for app
- tasm - 有谁知道如何使用 TASM 创建 COM 文件?
- .net - 将表存储密钥作为消息放入 Azure 队列
- excel - 宏 Vlookup 多条件类型不匹配错误