android 将SQLite转换为JSON

wh6knrhe  于 2023-03-16  发布在  Android
关注(0)|答案(5)|浏览(179)

有没有办法把sqlite转换成json?其他的问题都是解析json并保存到sqlite。我似乎找不到这方面的参考资料,请帮助我。
我有一个sqlite数据库内的应用程序,我需要它被转换为json,升级数据库版本,解析早期转换的json和添加另一个表。任何建议,我应该如何做到这一点?
先谢了。

6rvt4ljy

6rvt4ljy1#

如果您不想编写代码,可以使用快速简便的方法:

  • 下载SQLite的数据库浏览器:https://sqlitebrowser.org/(是的,它是免费的)
  • 打开SQLite数据库
  • 转到文件〉导出〉表到JSON

注意,由于某种原因,它不能正确地转换空值。它将此转换为空字符串...此外,就我现在而言,它的工作原理就像一个魅力。

bbmckpt7

bbmckpt72#

sqlite,已经有了json1扩展名,您可以用途:

// https://www.sqlite.org/json1.html
// https://gist.github.com/akehrer/481a38477dd0518ec0086ac66e38e0e2
var _sql = "SELECT json_group_array( json_object('id', id, 'name', name)    ) AS json_result FROM (SELECT * FROM ipfs ORDER BY id); ";

sql.js不支持json1扩展,
我的工作例子转换原始记录到json

function json1_extension(_records){
  var _json = [];
  var _columns = _records[0].columns
  var _values = _records[0].values

  for (var i = 0; i < _values.length; i++) {
    //console.log(_values[i]);
    var _row_json = {};
    var _row = _values[i];
    for (var k = 0; k < _row.length; k++) {
      _row_json[_columns[k]] = _row[k]
    }
    //console.log('_row_json...',_row_json);
    _json.push(_row_json)
  }
  return _json
}
zbdgwd5y

zbdgwd5y3#

static JSONObject cursorToJson(Cursor c) {
    JSONObject retVal = new JSONObject();
    for(int i=0; i<c.getColumnCount(); i++) {
        String cName = c.getColumnName(i);
        try {
            switch (c.getType(i)) {
                case Cursor.FIELD_TYPE_INTEGER:
                    retVal.put(cName, c.getInt(i));
                    break;
                case Cursor.FIELD_TYPE_FLOAT:
                    retVal.put(cName, c.getFloat(i));
                    break;
                case Cursor.FIELD_TYPE_STRING:
                    retVal.put(cName, c.getString(i));
                    break;
                case Cursor.FIELD_TYPE_BLOB:
                    retVal.put(cName, DataUtils.bytesToHexString(c.getBlob(i)));
                    break;
            }
        }
        catch(Exception ex) {
            Log.e(TAG, "Exception converting cursor column to json field: " + cName);
        }
    }
    return retVal;
}
bqujaahr

bqujaahr4#

要将SQLite转换为JSON,可以使用以下python工具:https://github.com/Austyns/sqlite-to-json-python
如果你不想编码,你也可以使用这个在线工具https://data-converters.web.app/

svmlkihl

svmlkihl5#

这个npm包完成了这项工作。它可以将你的sqlite文件转换成json easy。它还提供了操作输出的函数。
https://www.npmjs.com/package/sqlite-json

相关问题