我们有一个Web服务从后端系统返回一组数据,并使用适配器程序集成该服务。
在一台机器上,当返回数据时,我注意到托管数据的JSON对象名称称为“数组”。因此,当我想访问数据时,我使用invocationResult.array
。一切都很好。
但是当我的同事获取我的代码并在她的机器上运行时,从适配器返回的JSON具有“text”而不是数据的对象名称。有了这个,我的代码实际上是在发出错误,因为“array”变成了unidentified
。
为什么不同机器上的对象名称不同?
更新 我的同事机器运行版本6.1 Worklight Studio插件,而我的同事运行6.0。但是,使用6.1版运行的另一台机器根本没有遇到任何问题。这与Worklight设置有关吗?
我不确定的另一个信息是否有帮助,有问题的机器在Windows Server 2008上运行,而其他机器在Windows 7专业版上运行
答案 0 :(得分:1)
您可能正在运行较新版本的WL服务器/工作室。 WL适配器知道如何处理JSON响应。但是在您的情况下,响应不是JSON对象,而是数组。较旧版本的WL服务器将其视为纯文本,因此您具有“文本”属性。较新版本的WL服务器知道如何处理数组并将其解释为数组。这里最好的方法是在两台机器上使用相同的最新WL服务器/工作室版本。替代方案可能是通过JS API手动将数组字符串转换为数组对象。
答案 1 :(得分:1)
事实证明,问题在于适配器returnedContentType
设置。我同事的版本有一个'plain'值,而实际的版本应该是'json'
非常感谢@Anton,因为正是他的答案指出了正确的方向。