将 SQLite 转换为 JSON

问题描述 投票:0回答:5

有没有办法将 sqlite 转换为 json?所有其他问题都是解析 json 并保存到 sqlite。我似乎找不到任何参考资料,请帮助我。

我在应用程序中有一个 sqlite 数据库,我需要将其转换为 json,升级数据库版本,解析先前转换的 json 并添加另一个表。关于我该怎么做有什么建议吗?

提前致谢。

android android-sqlite android-json
5个回答
22
投票

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

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

当心,出于某种原因,它不能正确转换 NULL 值。它将它转换为一个空字符串......除此之外,就我现在而言,它就像一个魅力。


3
投票

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
}

2
投票
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;
}

1
投票

要将 SQLite 转换为 JSON,您可以使用此 python 工具:https://github.com/Austyns/sqlite-to-json-python

你也可以使用这个在线工具https://data-converters.web.app/如果你不想编码


1
投票

这个 npm 包可以完成这项工作。它可以轻松地将您的 sqlite 文件转换为 json。它还提供了操作输出的函数。

https://www.npmjs.com/package/sqlite-json

© www.soinside.com 2019 - 2024. All rights reserved.