Ionic 2 importJsonToDb()转义字符

时间:2017-06-26 07:40:04

标签: json sqlite cordova ionic2 escaping

我试图将一些带有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\\\"这样的字符串。所以这也不起作用。

1 个答案:

答案 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);