为 json 编码获取飞镖 class 的所有变量

Getting all of the variables of a dart class for json encoding

我有一个class

class Person{
  String _fn, _ln;
  Person(this._fn, this._ln);
}

有没有办法获取变量列表,然后序列化它?本质上我想做一个 toJson,但我想让它足够通用,这样键就是变量名,值就是变量名的值。

在 javascript 中类似于:

var myObject = {}; //.... whatever you want to define it as..
var toJson = function(){
  var list = Object.keys(myObject);
  var json = {};
  for ( var key in list ){
    json[list[key]] = myObject[list[key]] ;
  }
  return JSON.stringify(json);
}

Dart 没有内置的序列化功能。 pub.dartlang.org 提供了几个具有不同策略的软件包。有些使用镜像,这对客户端应用程序有害,因为它会导致 JS 输出大小过大或过大。新的 reflectable 包取代了 mirrors 而没有缺点,但我不知道序列化包是否已经被移植来使用它。还有使用代码生成的包。

有一个问题的答案列出了可用的解决方案。我回来的时候再看看。