2017-03-24 4 views
0

AndroidでJSONStoreに問題が発生しています。それはmfpdevアプリプレビューを使用してうまく動作します。MobileFirst Platform 8 Cordova:AndroidでのJSONStoreの問題

使う初期コード(正常に実行):

let collections = { 
    workorders: { 
    searchFields: {id: 'integer'} 
    } 
} 

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

入れコード(以下エラーログを参照して、」仕事をdoesnの):アンドロイドlogcatから

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);  
});  

}

エラー:

03-24 15:29:36.656 8362 8362 I ch JSONStore put関数:{"enddate": "2017-03-03"、 "description": "テスト作業順序0"、 "id":1、 "ts":romium:[INFO:CONSOLE(40796) "Ban"、 "status": "進行中"} "、ソース: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:行40798:データは配列ではありません 03-24 15:29:36.656 8362 8362 I chromium:[INFO:CONSOLE(40798)] "データが配列ではありません"、source :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:データは配列 03-24 15:29:36.657 8362 8362 Iクロム:[INFO:CONSOLE(40802)] "データ配列"、ソース:ファイル:///android_asset/www/build/main.js(40802) 03-24 15:29:36.662 8362 8362 D SystemWebChromeClient:file:///android_asset/www/build/main.js:L JSONstore put failed:{"src": "store"、 "err":10、 "msg": "BAD_PARAMETER_EXPECTED_DOCUMENT_OR_ARRAY_OF_DOCUMENTS"、 "col": "workorders"、 "usr": "jsonstore"、 "doc": JSONstore put failed:{"src": "store"、 "err":{}、 "res":{}} 03-24 15:29:36.662 8362 8362クロム:[INFO:CONSOLE(40813) 10、 "msg": "BAD_PARAMETER_EXPECTED_DOCUMENT_OR_ARRAY_OF_DOCUMENTS"、 "col": "workorders"、 "usr": "jsonstore"、 "doc":{}、 "res":{}} "、ソース:file:/// android_asset /www/build/main.js(40813)

エラーがBAD_PARAMETER_EXPECTED_DOCUMENT_OR_ARRAY_OF_DOCUMENTSあるが、しかし、私はそのことすでに配列ならば、それを配列を作るために私のコードを持っています。

また、私はJSONStoreコレクションの変更()メソッド上の任意のドキュメントを見つけることはできませんが、私はそれがこの例で使用された:https://mobilefirstplatform.ibmcloud.com/labs/developers/8.0/advancedmessenger/

は、誰もが問題が何であるか見つけることができますか?

答えて

0

私はついにこの問題が何かを知りました。

エラー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)); 
} 
関連する問題