本教程展示了在Dart 中打印一个类对象的多种方法.
在这篇文章中,你将学到多种内容
- 如何打印类对象
- 如何使用toString()方法打印类对象
- 如何完全转储并打印对象变量到控制台?
- 打印一个实例的对象属性
- 如何显示一个类的数据
- 打印对象变量为JSOn格式。
Dart类包含属性和函数,它是一个创建的对象实例的蓝图。
当运行应用程序时发生错误,必须将dart对象输出到控制台,以便检查实际值,进一步排除故障。当你使用print()或logger语句来打印一个对象时,它默认显示的格式是 - 'Class'的实例
让我们声明一个用于打印对象的类。
声明了Employee类,其属性为姓名和工资属性。
class Employee {
final String name;
final int salary;
Employee(this.name, this.salary);
}
final e1 = Employee('Erwin', 9000);
final e2 = Employee('Andrew', 70000);
final e3 = Employee('Mark', 8000);
final e4 = Employee('Otroc', 5000);
让我们使用print()函数将该类对象打印到控制台:
main() {
print(e1.toString()); //Instance of 'Employee'
print(e1); //Instance of 'Employee'
}
输出结果显示在控制台中:
Instance of 'Employee'
Instance of 'Employee'
在这里,打印一个instance 或instance.toString() ,打印**'Employee'的实例,**它在内部调用object.toString()并打印它。而且它不能帮助开发者检查属性中持有的数据类型。
这篇文章讲述了在dart和flutter中显示对象内容的多种方法。
如何在Dart中打印一个dart对象到控制台
当你访问一个对象的实例变量时,默认的toString()方法返回字符串,并返回'Employee'的实例。
所以,你可以在一个类中覆盖toString()方法并打印一个对象。
让我们在Employee.dart中覆盖toString方法,在一个方法中,写一段代码,以你的格式返回属性和值。
@override
String toString() {
return '{name: ${name}, salary: ${salary}}';
}
现在,使用print()函数打印该对象实例。
main() {
print(e1.toString()); //{name: Erwin, salary: 9000}
print(e1); //{name: Erwin, salary: 9000}
}
输出:
{name: Erwin, salary: 9000}
{name: Erwin, salary: 9000}
如何在控制台将类对象实例打印成JSON格式
我们有很多方法可以使用JSOn库进行转换。
下面是一个简单易行的方法,以JSON格式打印对象属性。
给类添加toJson()方法 下面是添加到控制台的方法。
Map toJson() => {"name": name, "salary": salary};
导入dart:convert 包,它可以转换编码和解码的数据类型。
下面是一个完整的例子
import 'dart:convert';
class Employee {
final String name;
final int salary;
Employee(this.name, this.salary);
Map toJson() => {"name": name, "salary": salary};
}
final e1 = Employee('Erwin', 9000);
main() {
print(e1.toJson()); // {name: Erwin, salary: 9000}
print(jsonEncode(e1)); //{"name":"Erwin","salary":9000}
}
输出:
{name: Erwin, salary: 9000}
{"name":"Erwin","salary":9000}
结论
学习如何使用toString方法和JSOn格式将类实例对象打印到控制台。