У меня есть объект 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),
),
);
},
),
);
}
}
И у меня есть объект json внутри ключа item1
значение boolean
. И поэтому я получаю ошибку type 'bool' is not a subtype of type 'String'
.
Поэтому мне интересно, как я могу показать все типы значений (не только boolean
), кроме String
из объекта json внутри ListView.builder
, не получая ошибки.
Это сработало, я не знаю, почему я не подумал об этом
Используйте data.values.toList()[index].toString();
Почему бы не использовать
data.values.toList()[index].toString();
?