程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了特殊字符JSON iOS SQLite大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决特殊字符JSON iOS sqlite?

开发过程中遇到特殊字符JSON iOS sqlite的问题如何解决?下面主要结合日常开发的经验,给出你关于特殊字符JSON iOS sqlite的解决方法建议,希望对你解决特殊字符JSON iOS sqlite有所启发或帮助;

问题是您正在使用构建sqlStringWithFormat。这是一种容易出现此类问题的做法。而是?在sql中使用占位符,然后用于sqlite3_bind_text将值绑定到?占位符。请参阅sqlite3_bind_text()帮助以获取更多信息。

例如,您可能会:

const char *insert_stmt = "INSERT INTO FORMATOS (ID, NOMBRE) VALUES (?, ?)";

if (sqlite3_prepare_v2(dIEneDB, insert_stmt, -1, &statement, NulL) != @R_785_5607@OK) {  // prepare sql
    NSLog(@"prepare error: %s", sqlite3_errmsg(dIEneDB));
} else {
    if (sqlite3_bind_text(statement, 1, IDStr, -1, NulL) != @R_785_5607@OK) {            // bind 1
        NSLog(@"bind IDStr error: %s", sqlite3_errmsg(dIEneDB));
    } else if (sqlite3_bind_text(statement, 2, nameStr, -1, NulL) != @R_785_5607@OK) {   // bind 2
        NSLog(@"bind nameStr error: %s", sqlite3_errmsg(dIEneDB));
    } else if (sqlite3_step(statement) != @R_785_5607@DONE) {                            // perform sql
        NSLog(@"step error: %s", sqlite3_errmsg(dIEneDB));
    } else {
        NSLog(@"Guardado Formatos correctamente");
    }

    sqlite3_finalize(statement);
}

我只是输入了此内容,因此请原谅任何错别字,但希望它能说明您的想法。

注意,我也(a)检查所有这些返回码;(b)记录错误(如果有);(c)完成后完成陈述。

解决方法

有一个问题。我从JSON获取信息,他返回了无效字符。JSON给我这个:“ 27
/”“,当我需要这个时:27”。我知道这是特殊字符的编码,但是当我使用NSString上的值在sqlite表中进行插入时,我不能使用27
/“,因为插入格式为:INSERT INTO FORMATOS(ID,NOMBRE)VALUES (“ 17”,“ 27””)。

我需要哪种方法在SQLlite中正确插入信息?

for (int i = 0; i<idFormato.count; i++) {
            NSString *idStr = [idFormato objectATindex:i];
            NSString *nameStr = [nameFormato objectATindex:i];

            insertSQL = [NSString StringWithFormat:@"INSERT INTO FORMATOS (ID,NOMBRE) VALUES (\"%@\",\"%@\")",idStr,nameStr];

            //Char constant with the query encoded un UTF
            const char *insert_stmt = [insertSQL UTF8String];
            //Execute query
            sqlite3_prepare_v2(dieneDB,insert_stmt,-1,&statement,null);

            //check if Statment is dne correctly
            if(sqlite3_step(statement) == @R_785_5607@DONE){
                NSLog(@"Guardado Formatos correctamente");
            }

JSON:

[

    {"ID_FORMATO_INT":"17","NOMBRE_FORMATO_STR":"2,5\"","ID_USUARIO_ALTA_INT":"3","FECHA_ALTA_FORMATO_DAT":"2014-09-18 07:17:55","ID_USUARIO_MOD_INT":null,"FECHA_MOD_FORMATO_DAT":null},{"ID_FORMATO_INT":"18","NOMBRE_FORMATO_STR":"4\"","FECHA_ALTA_FORMATO_DAT":"2014-09-18 07:18:20",{"ID_FORMATO_INT":"19","NOMBRE_FORMATO_STR":"4,7\"","FECHA_ALTA_FORMATO_DAT":"2014-09-18 07:20:07",{"ID_FORMATO_INT":"20","NOMBRE_FORMATO_STR":"5,"FECHA_ALTA_FORMATO_DAT":"2014-09-18 07:20:15",{"ID_FORMATO_INT":"21","NOMBRE_FORMATO_STR":"9,"FECHA_ALTA_FORMATO_DAT":"2014-09-18 07:20:42",{"ID_FORMATO_INT":"22","NOMBRE_FORMATO_STR":"7,9\"","FECHA_ALTA_FORMATO_DAT":"2014-09-18 07:21:04",{"ID_FORMATO_INT":"23","NOMBRE_FORMATO_STR":"11\"","FECHA_ALTA_FORMATO_DAT":"2014-09-18 07:22:40",{"ID_FORMATO_INT":"24","NOMBRE_FORMATO_STR":"13\"","FECHA_ALTA_FORMATO_DAT":"2014-09-18 07:22:44",{"ID_FORMATO_INT":"25","NOMBRE_FORMATO_STR":"15\"","FECHA_ALTA_FORMATO_DAT":"2014-09-18 07:22:49",{"ID_FORMATO_INT":"26","NOMBRE_FORMATO_STR":"21,"FECHA_ALTA_FORMATO_DAT":"2014-09-18 07:23:11",{"ID_FORMATO_INT":"27","NOMBRE_FORMATO_STR":"27\"","FECHA_ALTA_FORMATO_DAT":"2014-09-18 07:23:14","FECHA_MOD_FORMATO_DAT":null}

]

大佬总结

以上是大佬教程为你收集整理的特殊字符JSON iOS SQLite全部内容,希望文章能够帮你解决特殊字符JSON iOS SQLite所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: