好吧,我正在使用Microsoft的Web服务和AJAX从SQL数据库获取信息,以便在客户端使用java脚本。我想知道最好的方法是什么。在我开始处理项目之前,Web服务设置为返回一个填充了一些对象的C#List。那些对象变量(整数,字符串等)包含我想要使用的数据。当然,据我所知,java脚本对此无能为力。
然后我修改了Web服务以返回2D数组,但java脚本混淆了,据我所知,无法处理从C#返回的2D数组。然后我尝试使用常规数组,但后来发现JS中数组的长度属性没有结转,所以我无法在所有项目中执行for循环,因为无论如何都不知道如何那里有许多元素。
我能做的唯一事情就是返回一个带有特殊字符串的字符串来分隔数据,但这似乎太复杂了。有什么建议?提前致谢!
答案 0 :(得分:1)
修改强>
首先,我假设您使用基于SOAP的Web服务。通过SOAP,我或多或少地谈论了一个Web服务(在本例中为C#),它生成XML消息以接受数据请求并从这些请求发回结果。您可以在此处阅读有关SOAP的更多信息:http://en.wikipedia.org/wiki/SOAP
从C#webservice转到C#客户端应用程序非常简单,因为Visual Studio将自动为您的客户端应用程序生成一个使用者类。这里的示例:http://my.execpc.com/~gopalan/dotnet/webservices/webservice_csharp_client.html(虽然我认为Visual Studio具有比此示例更好的集成)。
或多或少,您的JavaScript需要为WebService生成适当的SOAP请求(XML),以了解要调用的方法。调用它之后,您需要使用JavaScript来解析所需数据的响应(也是XML)(jQuery为great for this)。
这是一个库,可以帮助您发出请求并从您的网络服务器获得响应。 http://www.ibm.com/developerworks/webservices/library/ws-wsajax/
以下是关于同一主题的类似问题,其中有一个非常好的示例:Simplest SOAP example
如果您正在寻找,请告诉我。希望它有所帮助!
<强> ORIGINAL 强>
您的数据(2D数组,列表等)正在序列化为XML。
因此,您需要使用Javascript来解析XML,而不是将其视为文字C#对象。
或者像keatch说的那样,返回JSON
答案 1 :(得分:0)
尝试返回JSON数组。 JSON是传递javascript对象的标准表示法。
答案 2 :(得分:0)
在您的服务中尝试此操作:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<SomeObject> name()
{
....
}