我在安卓系统上对JSONStore有一些问题。使用mfpdev应用程序预览会很好。
集成代码(成功运行):
let collections = {
workorders: {
searchFields: {id: 'integer'}
}
}
WL.JSONStore.init(collections).then((success) => {
console.log("Jsonstore init success");
},
(failure) => {
console.log("Jsonstore init failed", failure);
});放置代码(不工作,请参阅下面的错误日志):
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/
有人能发现问题出在哪里吗?
发布于 2017-03-25 16:41:34
我终于知道问题出在哪里了。
BAD_PARAMETER_EXPECTED_DOCUMENT_OR_ARRAY_OF_DOCUMENTS的错误似乎有些误导。如果我发送一个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));
}https://stackoverflow.com/questions/43002379
复制相似问题