我试图将一些带有cordova-sqlite-porter的JSON-Data批量导入到Ionic 2 App的数据库中。它工作得很好,但我无法逃脱角色library(data.table)
setDT(df1)[, .(value = sum(value)), .(Dayofweek = weekdays(as.Date(Interval)))]
# Dayofweek value
#1: Sunday 2975
#2: Monday 26368
#3: Tuesday 23772
#4: Wednesday 13560
#5: Thursday 17858
#6: Friday 16903
#7: Saturday 4738
和'
。这是我要导入的JSON:
"
所以 Characters 这个词应该用引号导入但是不会被输入。我尝试将let sqlJsonBlock = '{"data":{"inserts":{'
+ '"TABLENAME":[{'
+ '"LABEL":"Here are some "Characters"",'
+ '"ID":11,'
+ '"NUMBER":"0004"'
+ '}]'
+ '}}};'
this.sqliteporter.importJsonToDb( db, JSON.parse(sqlJsonBlock) );
或者""Characters""
或\"Characters\"
\"\"Characters\"\"
这两个字符双重转义,但似乎没有任何效果。
有人知道如何在JSON中转义这些字符以将它们导入SQLite-DB吗?
修改
我将测试数据包装在一些真正的JSON-Object中并成功导入它,但转义字符也会导入到数据库中。因此,在再次选择数据后,我得到一个像\\\"Characters\\\"
这样的字符串。所以这也不起作用。
答案 0 :(得分:0)
如果你在插件的complex_dump.json中查看example project,你会看到一些插件如何在JSON结构中转义预期引号(和其他特殊字符)的示例,例如:
"Title": "Up An' Atom",
"Composer": "Enotris Johnson/Little Richard/Robert \"Bumps\" Blackwell",
"Name": "Cavalleria Rusticana \\ Act \\ Intermezzo Sinfonico",
所以,在你的例子中它应该是:
let sqlJsonBlock = '{"data":{"inserts":{'
+ '"TABLENAME":[{'
+ '"LABEL":"Here are some \"Characters\"",'
+ '"ID":11,'
+ '"NUMBER":"0004"'
+ '}]'
+ '}}};'
this.sqliteporter.importJsonToDb( db, sqlJsonBlock);
注意:您不需要解析JSON字符串,因为插件会为您执行此操作。
但是,定义JSON对象文字会更容易:
let sqlJsonBlock = {
"data":{
"inserts":{
"TABLENAME":[{
"LABEL":"Here are some \"Characters\"",
"ID":11,
"NUMBER":"0004"
}]
}
}
};
this.sqliteporter.importJsonToDb( db, sqlJsonBlock);