SQLite从JSON对象ios插入多行

SQLite从JSON对象ios插入多行,ios,objective-c,json,sqlite,fmdb,Ios,Objective C,Json,Sqlite,Fmdb,我使用类通过http获取json数据 我得到以下示例输出: { “客户id”:“12”, “指纹代码”:“, “国民身份证”:“28811982” }, { “客户id”:“32”, “指纹代码”:“, “国民身份证”:“293239323” } 我想将上述数据从JSON字符串或对象中获取到我的SQLite数据库中。有人建议,但我不太熟悉 query = [NSString stringWithFormat:@"insert into clientInfo values(null, %d,

我使用类通过http获取json数据

我得到以下示例输出:

{ “客户id”:“12”, “指纹代码”:“, “国民身份证”:“28811982” }, { “客户id”:“32”, “指纹代码”:“, “国民身份证”:“293239323” }

我想将上述数据从JSON字符串或对象中获取到我的SQLite数据库中。有人建议,但我不太熟悉

  query = [NSString stringWithFormat:@"insert into clientInfo values(null, %d, %d, '%@')", [importedID intValue], [nationalID intValue], fingerPrintCode];
这是如何实现的,但我想学习如何在从JSON获取数据时插入数据,并立即或同时插入数据。
是示例之一,但它没有被证明有帮助。

假设示例数据实际上是一个JSON数组

[{ "client_id":"12", "finger_print_code":"", "national_id":"28811982" },
 { "client_id":"32", "finger_print_code":"", "national_id":"293239323" }]
您使用的sqlite版本启用了扩展,您可以执行以下操作

INSERT INTO clientInfo(client_id, finger_print_code, national_id)
SELECT json_extract(j.value, '$.client_id')
     , json_extract(j.value, '$.finger_print_code')
     , json_extract(j.value, '$.national_id')
FROM json_each(?) AS j;

其中,您将保存JSON数组的字符串绑定到从上述查询创建的prepared语句中的参数。根据需要调整列名(因为我猜您没有给出表定义)。

谢谢您的回答。这就是我在Objective-c中实现它的方式,以防有人想知道如何实现。在这个场景中,我使用一个自定义数据库类与我的SQLite数据库通信

        NSString *queryInsert;
    queryInsert = [NSString stringWithFormat:@"INSERT INTO clientInfo(clientID, nationalID, fingerPrintCode) SELECT json_extract(j.value, '$.client_id') , json_extract(j.value, '$.national_id') , json_extract(j.value, '$.finger_print_code')  FROM json_each('%@') AS j", my_json_array];
    [self.dbManager executeQuery:queryInsert];

其中,我的json数组就是我从服务器获得的jsonArray数据。我对扩展了解不多,感谢您的帮助和分享这些知识。

大家好,j到底是什么,JSON数组??thanx@bots_developer_fix它只是用于
json\u each()
返回的行的别名。有关详细信息,请参阅链接文档。或者,如果您从未将
视为
或不知道别名是什么,请参阅基本的sql教程。
        NSString *queryInsert;
    queryInsert = [NSString stringWithFormat:@"INSERT INTO clientInfo(clientID, nationalID, fingerPrintCode) SELECT json_extract(j.value, '$.client_id') , json_extract(j.value, '$.national_id') , json_extract(j.value, '$.finger_print_code')  FROM json_each('%@') AS j", my_json_array];
    [self.dbManager executeQuery:queryInsert];