2010-01-05 92 views
1

从ASP.NET(2.0)Web服务返回表格结构的最佳方式是什么?从Web服务返回表格结构

它应该与Java,Iphone App或任何其他平台互操作。

编辑:通过互操作我的意思是其他技术/客户端应该能够使用它或反序列化它们的本机类型,而不是解析响应XML。

+0

我也会对这样的事情感兴趣。然而,我发现涉及JSON或XML序列化的任何内容都没有涉及到这一点。对象样式注释过于冗长。你基本上在每一行重复列标题。我想要一些表格,以便我可以尽可能紧凑地传输数千个相同的记录。 – 2011-02-02 14:17:42

回答

1

您可以使用SOAP/XML实现互操作性。 以下是可能对您有帮助的article的链接。

1

Web Services由定义可互操作,因为它们依赖于XML在异构系统之间传递数据。

也就是说,需要定义的是表格结构如何在XML中进行序列化。

有几种方法可以做到这一点,每个人都有其优点和缺点。

  • 落实ISerializable接口
  • 装饰与[XmlSerializer]类属性来控制类是如何作为XML序列化。
  • 等,等,等...

只需启动来定义你想表达你的表格数据,然后如何实施工作怎么办。

+0

你的意思是我通过web服务发送的任何表格结构都会被任何客户端(java,php)轻松使用。如何返回DataTable或DataSet(.NET)?我不认为这很简单。 – 2010-01-06 16:57:16

0

取决于您的首选格式。我建议:

如果XML则是这样的:如果JSON然后像

<table> 
    <row1> 
    <col1>data</col1> 
    <col2>data</col2> 
    </row1> 
    <row2> 
    <col1>data</col1> 
    <col2>data</col2> 
    </row2> 
</table> 

[{"col1":"data","col2":"data"},{"col1":"data","col2":"data"}] 

在任何情况下,最好不要用手来做到这一点。使用库来序列化您的数据。

+0

我将使用ASP.NET,我可以将DataTable序列化为类似于上面建议的结构。我不确定反序列化。 – 2010-01-06 17:04:19

+0

我相信ASP.NET有库来序列化XML和JSON。如果微软仍然生活在黑暗时代,我会感到非常惊讶。 (想一想,我知道他们有图书馆来处理XML,因为他们目前正在被专利巨魔起诉) – slebetman 2010-01-06 17:11:56

0

您可能会返回类似Fielded Text的值。遗憾的是,并不是一个图书馆可以在.Net中轻松构建这样的文本对象,但是它自己实现并且绝对可以被任何其他平台解析。

顺便说一句,你真的需要使用基于SOAP的Web服务吗?它可能可能仅仅是当您调用给定url时返回的文本文档。考虑看看RESTful Web服务。