如何在java中使用c#dataset?
我正在使用webservice。我正在以C#dataset的形式向Java获取数据,如何从Java中的dataset检索值。这取决于Web服务的格式。如果是SOAP服务,请查看之前的答案:如何在java中使用c#dataset?,c#,java,dataset,C#,Java,Dataset,我正在使用webservice。我正在以C#dataset的形式向Java获取数据,如何从Java中的dataset检索值。这取决于Web服务的格式。如果是SOAP服务,请查看之前的答案: 如果它是安静的。如果可能的话,我建议使用JSON,因为.Net端的JSON序列化程序通常会提供更不可知的序列化。然后,Java端为您提供了一种健壮的连接方式,并允许您进行解析、摇摆和滚动。这取决于Web服务的格式。如果是SOAP服务,请查看之前的答案: 如果它是安静的。如果可能的话,我建议使用JSON,因为.
如果它是安静的。如果可能的话,我建议使用JSON,因为.Net端的JSON序列化程序通常会提供更不可知的序列化。然后,Java端为您提供了一种健壮的连接方式,并允许您进行解析、摇摆和滚动。这取决于Web服务的格式。如果是SOAP服务,请查看之前的答案:
如果它是安静的。如果可能的话,我建议使用JSON,因为.Net端的JSON序列化程序通常会提供更不可知的序列化。然后,Java端为您提供了一种健壮的连接方式,并允许您解析、摇动和滚动。这是否意味着您正在使用web服务传输实际的DataSet对象
在将C#数据集发送到web服务之前,只需在C#端将其转换为xml或格式化字符串。然后,您可以轻松地将web服务输出重新解析为您想要的任何java对象。(我只想使用一个格式化的字符串,我还没有使用过任何Java XML库,这些库几乎可以与C的XDoc媲美)。这是否意味着您正在使用web服务传输实际的DataSet对象
在将C#数据集发送到web服务之前,只需在C#端将其转换为xml或格式化字符串。然后,您可以轻松地将web服务输出重新解析为您想要的任何java对象。(我只想使用一个格式化的字符串,我没有使用任何Java XML库,这些库可以与C#的XDoc媲美)。数据集被序列化为XML。您必须在上创建一个XML对象 并通过将XML绑定到应用程序中的项来使用它。 对于简单的报告输出,XSLT将有助于简化工作 或 尽量远离任何特定于.NET的内容。不要回来 例如,数据集。坚持使用 简单的类型,你会没事的
快乐编码将数据集序列化为XML。您必须在上创建一个XML对象 并通过将XML绑定到应用程序中的项来使用它。 对于简单的报告输出,XSLT将有助于简化工作 或 尽量远离任何特定于.NET的内容。不要回来 例如,数据集。坚持使用 简单的类型,你会没事的
愉快编码我通过使用XPath和Xalan查询Axis交给我的DOM文档来处理这个问题。序列化数据集的模式非常清晰且易于查询。我只需要确保使用正确的名称空间设置Xalan来执行查询
我在这样处理数据时遇到了一个问题。序列化的数据集不包含null数据的元素。如果您知道所需的数据,那么这不是问题。但是,如果您不知道需要哪些数据,可以从XML文档中提取数据集中的字段。我通过使用XPath和Xalan查询Axis交给我的DOM文档来处理这个问题。序列化数据集的模式非常清晰且易于查询。我只需要确保使用正确的名称空间设置Xalan来执行查询
我在这样处理数据时遇到了一个问题。序列化的数据集不包含null数据的元素。如果您知道所需的数据,那么这不是问题。但是,如果您不知道预期的数据是什么,您可以从XML文档中提取数据集中的字段。实际上,我在android上工作,我在使用ksoap2 Web服务,我从服务器获取的数据应该只返回数据集。实际上,我在android上工作,我在使用ksoap2 Web服务,我从服务器获取的数据应该只返回数据集datasetI最近从性能(内存和速度)的角度重新审视了这一选择。我试图处理一个.NET数据集,其中包含从服务返回的50k行,在所有行的循环中使用XPath来获取我感兴趣的字段的值。JVM堆使用率>1G,提取字段值的时间>5分钟。我结束了重写,这样XPath就不会在所有行的循环中使用。相反,我手动遍历DOM树(
getFirstChild
,getNextSibling
)。在我的情况下,我知道我在寻找什么样的数据。重构后的处理时间<30秒。最近,我从性能(内存和速度)的角度重新审视了这个选择。我试图处理一个.NET数据集,其中包含从服务返回的50k行,在所有行的循环中使用XPath来获取我感兴趣的字段的值。JVM堆使用率>1G,提取字段值的时间>5分钟。我结束了重写,这样XPath就不会在所有行的循环中使用。相反,我手动遍历DOM树(getFirstChild
,getNextSibling
)。在我的情况下,我知道我在寻找什么样的数据。重构后的处理时间<30秒。