首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MobileFirst平台8 Cordova: Android上的JSONStore问题

MobileFirst平台8 Cordova: Android上的JSONStore问题
EN

Stack Overflow用户
提问于 2017-03-24 14:41:52
回答 1查看 127关注 0票数 0

我在安卓系统上对JSONStore有一些问题。使用mfpdev应用程序预览会很好。

集成代码(成功运行):

代码语言:javascript
复制
let collections = {
  workorders: {
    searchFields: {id: 'integer'}
  }
}

WL.JSONStore.init(collections).then((success) => {
  console.log("Jsonstore init success");
},
(failure) => {
  console.log("Jsonstore init failed", failure);      
});

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

代码语言:javascript
复制
 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);      
});      

}

来自android logcat的错误:

03-24 15:29:36.656 8362 8362 i铬:INFO:控制台(40796) "JSONStore put函数调用:{“结束日期”:“2017-03-03”,“描述”:“测试工作顺序0","id":1,”ts“:”潘基文“,”状态“:”进行中“},资料来源: file:///android_asset/www/build/main.js (40796) 03-24 15:29:36.656 8362 8362 D SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 40798 : data is array 03-24 15:29:36.656 8362 8362 I铬:INFO:控制台(40798)“数据不是数组”,资料来源: file:///android_asset/www/build/main.js (40798) 03-24 15:29:36.657 8362 8362 D SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 40802 : data is array 03-24 15:29:36.657 8362 8362 I铬:INFO:控制台(40802)“数据是数组”,资料来源: file:///android_asset/www/build/main.js (40802) 03-24 15:29:36.662 8362 8362 D SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 40813 : JSONstore put failed:{"src":"store","err":10,"msg":"BAD_PARAMETER_EXPECTED_DOCUMENT_OR_ARRAY_OF_DOCUMENTS",“col”:“”msg“:”BAD_PARAMETER_EXPECTED_DOCUMENT_OR_ARRAY_OF_DOCUMENTS“,”,"usr":"jsonstore","doc":{},“res”:{} 03-24 15:29:36.662 8362 8362 i usr:INFO:jsonstore(40813)jsonstore put failed:{“src”:"JSONstore“:”store“,"err":10,”workorder“:"usr":"jsonstore","doc":{},”res“:{}资料来源: file:///android_asset/www/build/main.js (40813)

错误是BAD_PARAMETER_EXPECTED_DOCUMENT_OR_ARRAY_OF_DOCUMENTS,,但是我的代码中有一个数组,如果它还不是数组的话。

另外,我找不到关于JSONStore集合上的change()方法的任何文档,但是我发现它在下面的示例中使用:https://mobilefirstplatform.ibmcloud.com/labs/developers/8.0/advancedmessenger/

有人能发现问题出在哪里吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-25 16:41:34

我终于知道问题出在哪里了。

BAD_PARAMETER_EXPECTED_DOCUMENT_OR_ARRAY_OF_DOCUMENTS的错误似乎有些误导。如果我发送一个JSONObject,它总是失败的。在我使用下面的代码将其转换为JSONArray之后,它工作了:

代码语言:javascript
复制
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));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43002379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档