我有一个json对象,我想用ListView.builder来可视化键和键值:

class Items {
  Map<String, dynamic> getItems() {
    String jsonData = '{ "item1": true,"item2": "value2","item3": "value3"}';

    Map<String, dynamic> data = jsonDecode(jsonData);
    return data;
  }
}

class App extends StatefulWidget {
  const App({Key? key}) : super(key: key);

  @override
  _AppState createState() => _AppState();
}

class _AppState extends State<App> {
  @override
  Widget build(BuildContext context) {
    Map<String, dynamic> data = Items().getItems();
    return Scaffold(
      body: ListView.builder(
        itemCount: data.keys.length,
        itemBuilder: (c, index) {
          return ListTile(
            title: Text(
              "Value " + data.values.toList()[index],
              style: TextStyle(color: Colors.white),
            ),
            subtitle: Text(
              "Key " + data.keys.toList()[index],
              style: TextStyle(color: Colors.white),
            ),
          );
        },
      ),
    );
  }
}

我在索引键item1中输入了json对象的boolean值.所以我得到了错误type 'bool' is not a subtype of type 'String' .

因此,我想知道如何在ListView.builder中显示json对象中除String之外的所有类型的值(而不仅仅是boolean),而不会出现错误.

推荐答案

使用data.values.toList()[index].toString();

Flutter相关问答推荐

video_player在Android上返回401 Unauthorized with Bunny CDN

Flutter 翼doctor 显示的错误,我似乎不能修复.问题:系统32、Android工具链、Windows 10 SDK

BlocBuilder仅生成一次,并在后续发出时停止重建

Android Studio扩展控件上未加载Google map

SingleChildScrollView在ErrorWidget.builder中不工作

Flutter Xcode 15 错误(Xcode):DT_TOOLCHAIN_DIR 无法用于判断 LIBRARY_SEARCH_PATHS

如何在 Flutter 中创建厚度沿着容器逐渐减小的边框

将自定义容器附加到屏幕底部

如何在flutter中实现这样的底部导航栏?

在Flutter中为容器实现线性渐变背景动画

Flutter开发中,如何通过'nfc_manager'插件在Android设备上避免默认的New Tag Scanned弹出窗口?

Flutter - 如何将按钮对齐到行的右侧

如何在 Flutter 中测试动画图标

如何在 flutter 中同时使用 ButtonStyle() 和 ElevatedButton.styleFrom() ?

alert 对话框内的 ListView 显示空的透明窗口

改变步进器的线条 colored颜色 Flutter

statefulWidget 无法进行所需更改的问题

我几乎每次都将 Stateless Widget 与 BLoC 一起使用.我错了吗?

Flutter - 检测手指何时进入容器

如何从圆角go 除背景 colored颜色