【问题标题】:Classic ASP VBScript object to array经典 ASP VBScript 对象到数组
【发布时间】:2011-11-17 01:55:53
【问题描述】:

我通常不处理 VBScript 和经典 ASP,但我必须对我们的一个旧网站进行一些更改。

我使用 SOAP Web 服务来获取字符串值数组,但是当我尝试从经典 ASP 代码中使用它时,它告诉我它是一个对象

该服务有效,它返回一个字符串数组,代码是正确的,我只需要知道如何将它从一个对象更改为我认为的字符串。

Web 服务 WSDL:

<xs:element name="getProductFunctionsResponse">
    <xs:complexType>
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

错误

对象不是集合

经典的 ASP 代码:

result2 = soap.getProductFunctions("AEDO")
i = 0
For Each present In result2
    If mid(user_auth_key,i,1) = 1 Then
        response.write("success")
    End If
    response.write(present)
    response.write("<br />")
    i = i+1
Next

【问题讨论】:

  • VBScript 是脚本语言,因此无法执行类型转换,因此问题可能比您想象的更严重。首先,让我们调试一下:当您拥有Response.Write(result2) 时,您会得到什么? Response.Write(CStr(result2)) 呢?最后是Response.Write(TypeName(result2))?请让我们知道每个的输出,它可能会对问题有所帮助。
  • +1 暗影法师。我猜类型名称是String() 而VBScript 无法处理它。 (如果我没记错的话)@David 您可以再添加一个可选参数以向后兼容您的 Web 服务。如果是classic-asp,您的Web 服务将返回一个分隔字符串而不是array of string。你可以在经典的 asp 中拆分返回值,所以它是可迭代的。
  • 大家好,感谢您的回复,我将在大约一个小时后查看此内容并报告我的进度。

标签: web-services vbscript asp-classic


【解决方案1】:

您是否尝试过使用 SET 一词,因为它返回的是一个对象?

SET result2 = soap.getProductFunctions("AEDO")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多