codememo

SQLite 데이터베이스에 JSON 개체를 저장하는 방법

tipmemo 2023. 3. 14. 21:40
반응형

SQLite 데이터베이스에 JSON 개체를 저장하는 방법

SQLite 데이터베이스에 JSON 개체를 저장하려면 어떻게 해야 합니까?올바른 방법은 무엇입니까?

하나는 blob type column입니다. 만약 내가 JSON 객체를 바이트 배열로 변환하고 Fileoutputstream을 사용할 수 있다면

다른 아이디어는 텍스트 열에 문자열로 저장하는 것입니다.

import org.json.JSONObject;

JSONObject jsonObject;

public void createJSONObject(Fields fields) {
    jsonObject = new JSONObject();

    try {
        jsonObject.put("storedValue1", fields.storedValue1);
        jsonObject.put("storedValue2", fields.storedValue2);
        jsonObject.put("storedValue3", fields.storedValue3);
        jsonObject.put("storedValue4", fields.storedValue4);
        jsonObject.put("storedValue5", fields.storedValue5);
        jsonObject.put("storedValue6", fields.storedValue6);
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

JSONObject를 String으로 변환하고 TEXT/VARCHAR로 저장합니다.동일한 열을 가져오는 동안 String을 JSONObject로 변환합니다.

예를들면

DB에 쓰기

String stringToBeInserted = jsonObject.toString();
//and insert this string into DB

DB에서 읽기

String json = Read_column_value_logic_here
JSONObject jsonObject = new JSONObject(json);

또는 SQLite에 새 JSON 확장을 사용할 수도 있습니다.https://www.sqlite.org/json1.html 이 기능을 사용하면 저장된 JSON에 대해 일정 수준의 쿼리를 수행할 수 있습니다.VARCHAR 또는 TEXT를 사용하여 JSON 문자열을 저장한 경우 조회할 수 없습니다.이것은 그 사용법을 (python으로 나타낸) 훌륭한 기사입니다.http://charlesleifer.com/blog/using-the-sqlite-json1-and-fts5-extensions-with-python/

그에 대한 데이터 유형은 없습니다.VARCHAR 또는 TEXT로만 저장해야 합니다. jsonObject.toString();

https://github.com/requery/sqlite-android 에서는 JSON 필드(및 그 필드 내의 어레이)에 대한 쿼리를 실행할 수 있습니다.이전에는 JSON 문자열을 TEXT 열에 저장했습니다.FTS3, FTS4, JSON1 지원

2019년 7월 현재도 가끔 버전 범프가 있기 때문에 죽은 프로젝트는 아닙니다.

  • https://www.sqlite.org/json1.html (JSON 문서 저장 및 조회)
  • https://www.sqlite.org/fts3.html (전체 텍스트 검색 실행)

https://github.com/app-z/Json-to-SQLite

처음에 JSON http://www.jsonschema2pojo.org/에서 Plain Old Java 객체를 생성합니다.

주요 방법

createDb(String dbName, String tableName, List dataList, Field []필드){...

필드 이름이 동적으로 생성됩니다.

언급URL : https://stackoverflow.com/questions/16603621/how-to-store-json-object-in-sqlite-database

반응형