如何在 Flutter/Dart 中打印实例?

Aru*_*run 0 json dart flutter

我有一种数据类型Map<String,CartItem> _items = {}; 并使用print(_items)

输出是:

{
  p1: Instance of 'CartItem', 
  p2: Instance of 'CartItem'
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以查看完整的日志(值)CartItem?正如我的期望是:

{
  p1: some json formatted structure, 
  p2: some json formatted structure
}
Run Code Online (Sandbox Code Playgroud)
class CartItem {
  final String id;
  final String title;

  CartItem({
    @required this.id,
    @required this.title,
  });
}
Run Code Online (Sandbox Code Playgroud)

meh*_*our 8

你只需要重写你的toString方法:

class CartItem {
  final String id;
  final String title;

  CartItem({
    required this.id,
    required this.title,
  });

  @override
  String toString() {
    return '{id: $id, title: $title}';
  }
}
Run Code Online (Sandbox Code Playgroud)

用法:

main() async {
  CartItem item = CartItem(id: '1', title: 'title');
  print(item); // {id: 1, title: title}

  Map<String, CartItem> items = {
    'p1': CartItem(id: '1', title: 'title'),
    'p2': CartItem(id: '2', title: 'titl2'),
  };
  print(items); // {p1: {id: 1, title: title}, p2: {id: 2, title: titl2}}


  List<CartItem> list = [
    CartItem(id: '1', title: 'title'),
    CartItem(id: '2', title: 'title2'),
  ];
  print(list); // [{id: 1, title: title}, {id: 2, title: title2}]
}
Run Code Online (Sandbox Code Playgroud)