从Worklight Adapter返回的数组项具有不同的名称

时间:2014-02-20 15:52:23

标签: ibm-mobilefirst worklight-adapters

我们有一个Web服务从后端系统返回一组数据,并使用适配器程序集成该服务。

在一台机器上,当返回数据时,我注意到托管数据的JSON对象名称称为“数组”。因此,当我想访问数据时,我使用invocationResult.array。一切都很好。

但是当我的同事获取我的代码并在她的机器上运行时,从适配器返回的JSON具有“text”而不是数据的对象名称。有了这个,我的代码实际上是在发出错误,因为“array”变成了unidentified

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

非常感谢@Anton,因为正是他的答案指出了正确的方向。