Ibm mobilefirst 从Worklight适配器返回的数组项具有不同的名称

Ibm mobilefirst 从Worklight适配器返回的数组项具有不同的名称,ibm-mobilefirst,worklight-adapters,Ibm Mobilefirst,Worklight Adapters,我们有一个从后端系统返回数据数组的web服务,该服务使用适配器过程进行集成 在一台机器上,当返回数据时,我注意到承载数据的JSON对象名被称为“array”。因此,当我想要访问数据时,我使用invocationResult.array。一切都很好 但是当我的同事得到我的代码并在她的机器上运行时,从适配器返回的JSON将使用“text”作为数据的对象名。这样,我的代码基本上是在发出错误,因为“array”随后变成了未识别的 为什么不同机器上的对象名称不同 更新 我同事的机器运行6.1版Workli

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

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

但是当我的同事得到我的代码并在她的机器上运行时,从适配器返回的JSON将使用“text”作为数据的对象名。这样,我的代码基本上是在发出错误,因为“array”随后变成了
未识别的

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

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


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

您可能正在运行更新版本的WL Server/studio。WL适配器知道如何处理JSON响应。然而,在您的例子中,响应不是JSON对象,而是一个数组。旧版本的WL server将其视为纯文本,因此您有一个“text”属性。更新版本的WL server知道如何处理数组并将其解释为数组。这里最好的方法是在两台机器上使用相同的最新WL server/studio版本。替代方法可能是通过JS API手动将数组字符串转换为数组对象。

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


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

要验证请求状态,请检查响应中的isSuccessful属性,如果该属性为true,则请求成功,否则将失败。要详细了解Saifudin的评论,请参阅以下博文:感谢回复。我检查了她的worklight studio插件版本,事实上,当我在我的机器上运行版本6.0时,她有版本6.1。