在Dart和Java之间共享类型

在Dart和Java之间共享类型,java,json,dart,data-transfer,Java,Json,Dart,Data Transfer,是否有可能至少在数据传输层面上整合这两个世界? 假设我有通过SpringWebMVC REST端点提供的Java对象,我的Dart客户端使用AJAX访问这些资源。如果Dart客户端也知道传输的类型,那就好了,这样我就不必同步相同类型定义的Dart和Java版本,但是如果客户端的数据访问无效,IDE可能会给我建议和错误 编辑 再解释一下我想做什么,因为我似乎不够清楚: 在Java方面,我定义了一个bean,它由SpringWebMVC+Jackson转换为JSON。所以传输单元已经是JSON了

是否有可能至少在数据传输层面上整合这两个世界? 假设我有通过SpringWebMVC REST端点提供的Java对象,我的Dart客户端使用AJAX访问这些资源。如果Dart客户端也知道传输的类型,那就好了,这样我就不必同步相同类型定义的Dart和Java版本,但是如果客户端的数据访问无效,IDE可能会给我建议和错误


编辑

再解释一下我想做什么,因为我似乎不够清楚:

  • 在Java方面,我定义了一个bean,它由SpringWebMVC+Jackson转换为JSON。所以传输单元已经是JSON了。我可以轻松地使用Dart动态访问数据,但这不是我想要做的
  • 我想将检索到的数据解析为一个Dart类,事实证明它是原始JavaBean类定义的复制。看看Dart的网站,特别是
    语言
    抽象类。这正是我现在正在做的。我定义了一个抽象类,它定义了从服务器检索的JSON数据。这样,如果我访问不存在的字段或执行不兼容的强制转换等操作,Dart可能会给出语法错误。当然,这仍然会导致解析错误,但之后我可以以类型化的方式处理数据
  • 我的问题是,要实现这一点,我必须手动同步Java端的数据bean类定义和Dart端的抽象类定义。我想知道是否有人正在创建类似于代码生成器的东西,它可以从Java类定义中创建Dart类定义

您要求使用编辑器功能,这将导致编辑器性能下降。对于任何这样的特性,编辑器可能需要为java对象构建/维护对象图/语法树(在java世界中是否使用AST),然后将其与Dart的语法树进行比较

不同的语言也会提出相同的请求,例如C#、Ruby等。在性能限制范围内,似乎没有任何合理的方法来验证来自不同编程世界的对象

我可以从下面的stackoverflow q/a中借用更多的观点,解释为什么在java/c世界和dart世界之间使用JSON/XML比其他任何方式交换数据更简单-\


  • 好的,您可以使用JSON作为数据交换格式,例如,我链接的答案的可能副本不适合
    IDE,如果客户端的数据访问无效,IDE可能会给我建议和错误。
    part,尽管如此。@ZdeslavVojkovic他说的是java,不是javascript.oops,一定是睡着了。尽管如此,他在客户端获得了JS对象(除非是XML),所以……我将我的问题扩展到更具体的方面。我对JSON很在行,我不想使用Java序列化。那不是我想做的。酷。你和我在不同的领域遇到了同样的问题。在我们的例子中,跨JavaScript和Java世界的JSON存在问题。我还没有找到合适的工具。Dart和Java世界可能会变得更简单:)我明白了。谢谢你的回答!:)我会接受这一点,因为你的第一个链接向我透露了Apache Thrift和Google协议缓冲区,这似乎是一个很好的交易。我想知道是否有一个飞镖发生器可用于任何这些。