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://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
'codememo' 카테고리의 다른 글
| angular.module()을 여러 번 정의하는 AngularJS (0) | 2023.03.14 |
|---|---|
| material ui에서 수평 스크롤이 발생합니다. - (0) | 2023.03.14 |
| input type="number"의 경우 기본값을 0으로 설정하는 방법 (0) | 2023.03.14 |
| org.springframework 패키지부팅이 존재하지 않습니다. (0) | 2023.03.14 |
| Angular의 상위 컨트롤러에서 디렉티브의 메서드를 호출합니다.JS (0) | 2023.03.14 |