我们将移动一些数据,这些数据将具有一些标准字段以及一些键值对,它们将在数据项之间变化。显然,我们可以在JSON或XML中编写一些代码来实现这一点,并编写我们自己的编组/解组代码,但我希望基于标准的解决方案具有以下部分或全部功能:
- SharePoint列表的编组/解组。净
- Java的编组/反编组
- 跨集成边界对数据进行操作的服务定义和语义 <
- 安全语义/gh>
我们目前正在查看OData协议来执行此任务:http://www.odata.org/
想必您很久以前就已经做出了决定,但是对于其他在这里结束的人,并且可能对比OData更低级的东西感兴趣,下面是我用于c#到Java数据交换的方法:
Google Protocol缓冲区作为交换格式:https://developers.google.com/protocol-buffers/
Marc Gravell的c#端protobuf-net:http://code.google.com/p/protobuf-net/
Java端有一个叫做protostuff的程序:http://code.google.com/p/protostuff/
(我更喜欢protostuff而不是协议缓冲区的官方Google Java实现,因为Google的实现是基于Java对象不可变的。)
实际上,我没有使用纯协议缓冲区作为交换格式-我在数据前面加上(最外层)正在传输的类的名称。这使得数据在另一端为反序列化进行自识别。