Class< - >中是否有任何已知的改进? Json序列化?

时间:2016-04-06 15:11:15

标签: json dart

Dart有一个已知错误,即使用公共变量创建的类无法传递给本机JSON模板调用。我不确定这方面是否有任何进展。

实施例

class Test{
  String a;
  int b;
}

很高兴翻译成:

{"a":"","b":0}

似乎在环顾互联网和dart论坛时,这是一个问题,并且使用与Javascript密切协作的语言,这是一个非常大的疏忽。我还没有看到任何东西,虽然看起来如果你使用镜子,你可能会刮掉公共变量,这似乎是时间密集的。

以下是我正在研究的样本。

class UserGroup{
  String a;
  int b;

  UserGroup.fromMap(Map m){ ... }
}

我从服务电话中收到一张投射到UserGroup的地图。

然后生成一个List,它被绑定并传递给将访问Map的子WebComponent。这样的事情。

<service-call result="{{rowData}}"></service-call>
<grid-creator rows="{{rowData}}"></grid-creator>

和网格创建者内部:

<dom-module id="grid-creator>
  <template>
    <div>
      <template is="dom-repeat" for="{{rows}}" as="row">
        <div id="{{row.id}}">{{row.name}}</div>
      </template>
    </div>
  </template>
</dom-module>

问题在于grid-creator是动态的,接受一行地图并相应地解析。即使我要说List<UserGroup> rows它也不会将其理解为row并且会抛出如下错误:

类型'UserGroup'不是'row'类型'Map'类型的子类型

这意味着Dart类根本不能与模板转发器交互,除非类本身是map的子类型。这对我没有意义。

话虽如此,很多笔记都是从2015年9月开始的。我很好奇这已经取得了进展。

你可以说:好吧,为什么不只是有一个toJson方法来转换一个地图,然后解析并拦截它并在它到达模板之前转换它。

我的意思是,我想如果我在rowData上做一个观察者,然后有一个第二个变量被填充并随后刷新grid-creator,这可能是一件事,但这不是真正的重点。它有点删除了对象的传递,在那一点上,我应该删除类组件并只使用地图。如果我只是使用地图,那么为什么我会使用飞镖? /endrant

无论如何,这个领域有没有改进?

我正在阅读关于序列化的一个主题:https://github.com/dart-lang/sdk/issues/16630

编辑:我试图研究让UserGroup扩展JsProxy的概念,但我认为这不会解决我遇到的问题

0 个答案:

没有答案