节点Webkit和Web SQL插入JSON错误
Node Webkit and Web SQL error inserting JSON
我刚开始使用Node-Webkit(现在是NW.js),我正试图使用Web-SQL来存储数据。
创建数据库工作正常,与示例中完全相同,通常插入数据工作正常,与示例中一样。然而,当我要插入一个从jtree创建的JSON对象时,我遇到了麻烦。
JSON对象是使用jsTree方法创建的:get_json('#', { 'flat': false })
,然后用JSON.stringify
转换为字符串,但是当我试图将其插入表(存在并具有正确数量的字段等)时,我遇到了一个错误。
目前我正在使用以下代码:
DBase.transaction(
function(tx){
var v = $("#TheTree").jstree(true).get_json('#', { 'flat': false });
var jsv = JSON.stringify(v);
tx.executeSql(
'INSERT INTO TheTable VALUES(null, "Default", ' + jsv + ')',
[],
function(tx, data){ console.log("Success"); },
function(tx, error){ console.error("FAIL",error); }
);
};
);
从JSON.stringify
返回的JSON如下:
[{"id": "IDSTring","text": "Welcome String","icon": true,"li_attr": {"id": "tID4392"},"a_attr": {"href": "#","id": "tID4392_anchor"},"state": {"loaded": true,"opened": false,"selected": false,"disabled": false},"data": {},"children": []}]
如果我使用相同的代码与任何其他值代替变量jsv
,例如任何标准字符串等,没有错误,数据被插入,但是JSON会导致以下错误:could not prepare statement (1 unrecognized token: "}") CODE: 5
.
JSON在JSON Lint验证,可以加载(解析)回jtree没有问题,所以我认为它只能是INSERT导致问题。
经过一番搜索,我试着将代码改为:
'INSERT INTO TheTable VALUES(null, "Default", "' + jsv + '")'
和
'INSERT INTO TheTable VALUES(null, "Default", [' + jsv + '])'
有非常相似的错误,通常是语法错误或"]"作为一个无法识别的标记,但总是一个'Code:5'。
任何帮助我们都将感激不尽。
对
马克思需要转义参数或使用预处理语句。试试这个:
tx.executeSql('INSERT INTO TheTable VALUES(null, "Default", ?)', [jsv], ...
executeSql
的第二个参数是一个数组,其中包含将用于代替查询中的问号的所有值。下面是更多的例子:http://html5doctor.com/introducing-web-sql-databases/
相关文章:
- 如何用javascript,phonegap(cordova)将json对象插入sqlite表中
- 将JSON插入MongoDB中,自动转换字符串中的日期
- Algo查找深度并在JSON数组中按顺序插入
- 在HTML中插入JSON中的select标记选项
- 如何将json数据插入到表中
- JS-在JSON文件中插入、删除和添加数据
- 将javascript变量插入json字符串
- json - 从响应对象中获取值,并将其插入请求中
- 如何使用 js 将 json 响应插入 xxxxx
- 如何将元素插入 JSON 数组
- 如何插入 JSON
- 如何使用Mongoose/MongoDB直接插入JSON
- LokiJS不允许插入Json数据
- 如何在React js中插入json数据
- (Angular)将一个对象插入json数组
- 在文本区域插入json对象
- 插入JSON.将字符串化的数据放入MongoDB
- 如何在数组中插入json到highcharts
- 将JavaScript变量插入JSON
- 节点Webkit和Web SQL插入JSON错误