Ibm mobilefirst MobileFirst Platform 8 Cordova:Android上的JSONStore问题

Ibm mobilefirst MobileFirst Platform 8 Cordova:Android上的JSONStore问题,ibm-mobilefirst,jsonstore,Ibm Mobilefirst,Jsonstore,我对Android上的JSONStore有一些问题。使用mfpdev应用程序预览可以很好地工作 初始化代码(成功运行): 放置代码(不起作用,请参阅下面的错误日志): } 来自android logcat的错误: 03-24 15:29:36.656 8362 8362 I:[INFO:CONSOLE(40796)]“JSONStore put函数调用:{“enddate”:“2017-03-03”,“description”:“测试工单0”,“id”:1,“ts”:“Ban”,“status”

我对Android上的JSONStore有一些问题。使用mfpdev应用程序预览可以很好地工作

初始化代码(成功运行):

放置代码(不起作用,请参阅下面的错误日志):

}

来自android logcat的错误:

03-24 15:29:36.656 8362 8362 I:[INFO:CONSOLE(40796)]“JSONStore put函数调用:{“enddate”:“2017-03-03”,“description”:“测试工单0”,“id”:1,“ts”:“Ban”,“status”:“In progress”}”,来源:file:///android_asset/www/build/main.js (40796) 03-24 15:29:36.656 8362 8362 D系统网络彩色客户端:file:///android_asset/www/build/main.js: 第40798行:数据不是数组 03-24 15:29:36.656 8362 8362 I:[信息:控制台(40798)]“数据不是数组”,来源:file:///android_asset/www/build/main.js (40798) 03-24 15:29:36.657 8362 8362 D系统网络彩色客户端:file:///android_asset/www/build/main.js: 第40802行:数据是数组 03-24 15:29:36.657 8362 8362 I:[信息:控制台(40802)]“数据就是数组”,来源:file:///android_asset/www/build/main.js (40802) 03-24 15:29:36.662 8362 8362 D系统网络彩色客户端:file:///android_asset/www/build/main.js: 第40813行:JSONstore put失败:{“src”:“store”,“err”:10,“msg”:“BAD_参数_预期_文档_或_文档数组_”,“col”:“workorders”,“usr”:“JSONstore”,“doc”:{},“res”:{} 03-24 15:29:36.662 8362 8362 I[INFO:CONSOLE(40813)]“JSONstore put failed:{“src”:“store”,“err”:10,“msg”:“BAD_PARAMETER_EXPECTED__文档_或_数组_OF_文档”,“col”:“workorders”,“usr”:“JSONstore”,“doc”:{},“res”:{}”,来源:file:///android_asset/www/build/main.js (40813)

错误是错误的\u参数\u预期的\u文档\u或\u文档的\u数组\u,但是我的代码中有一个数组,如果它还不是数组的话

此外,我在JSONStore集合中找不到任何关于change()方法的文档,但我发现在本例中使用了它:


有人能发现问题所在吗?

我终于找到了问题所在

错误BAD_参数\u预期的\u文档\u或\u文档的\u数组\u似乎有点误导。如果我发送一个JSONObject,它总是失败。在我使用以下代码将其转换为JSONArray后,它成功了:

if (!Array.isArray(data))
{
  console.log("data is not array");
  data = JSON.parse('[' + JSON.stringify(data) + ']');
  console.log("data is now an array: " + JSON.stringify(data));
}
 put(data) : void {
console.log("JSONStore put function called: " + JSON.stringify(data));

if (!Array.isArray(data))
{
  console.log("data is not array");
  data = this.json2array(data);
}

if (Array.isArray(data)){
  console.log("data is array");
}

let collectionName = "workorders";
let options = {
  replaceCriteria: ['id'],
  addNew: true,
  markDirty: false
};

WL.JSONStore.get(collectionName).change(data, options).then((success)=> {
  console.log("JSONStore put success");
}, 
(failure) => {
  console.log("JSONstore put failed: " + JSON.stringify(failure), failure);      
});      
if (!Array.isArray(data))
{
  console.log("data is not array");
  data = JSON.parse('[' + JSON.stringify(data) + ']');
  console.log("data is now an array: " + JSON.stringify(data));
}