从Worklight Adapter返回的阵列项目具有不同的名称



我们有一个从后端系统返回数据数组的web服务,该服务使用Adapter过程进行集成。

在一台机器上,当返回数据时,我注意到承载数据的JSON对象名称被称为"array"。因此,当我想要访问数据时,我使用invocationResult.array。一切都很好。

但是,当我的同事获得我的代码并在她的机器上运行时,适配器返回的JSON将"text"作为数据的对象名。有了这个,我的代码本质上是在发出错误,因为"数组"变成了unidentified

为什么不同机器上的对象名称不同?

更新我的同事计算机运行6.1版Worklight Studio插件,而我的计算机运行6.0版。然而,另一台运行6.1版本的机器根本没有遇到任何问题。这与Worklight设置有关吗?

另一个信息,我不确定是否会有帮助,有问题的机器运行在Windows Server 2008上,而其他运行在Windows 7专业上

您可能正在运行WL服务器/工作室的更新版本。WL适配器知道如何处理JSON响应。但是,在您的情况下,响应不是JSON对象,而是一个数组。WL服务器的旧版本将其视为明文,因此您有一个"text"属性。WL服务器的新版本知道如何处理数组,并将其解释为数组。这里最好的方法是在两台机器上使用相同的最新WL服务器/工作室版本。替代方案可能是通过JSAPI手动将数组字符串转换为数组对象。

事实证明,问题出在适配器returnedContentType设置上。我同事的版本有一个值"plain",而实际的版本应该是"json">

非常感谢@Anton,因为他的回答为我指明了正确的方向。

最新更新