sqlite
のデータをすべての列からJSONArray
にフォーマットしようとしています。次のようにGSONを使用してJsonとしてSqliteデータを取得する方法
私のsqliteのデータの例は次のとおりです。私は列product
の下で私のデータベースに文字列としてJSONArray
を保存してい
id | name | product |
1 | stev |[{"id":"1","title":"box"}]
1 | Lian |[{"id":"2","title":"bag"}]
1 | beny |[{"id":"3","title":"pen"}]
。
gson library
を使用してjsonArray
を作成しようとしています。
これは私がしようとしたものです:
public String composeJSONfromSQLite() {
ArrayList<HashMap<String, String>> offlineList;
offlineList = new ArrayList<HashMap<String, String>>();
String selectQuery = "SELECT * FROM manyofflineCheckouts ";
SQLiteDatabase database = this.getWritableDatabase();
Cursor cursor = database.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
HashMap<String, String> map = new HashMap<String, String>();
map.put(cursor.getString(0));
map.put(cursor.getString(1));
map.put(cursor.getString(2));
offlineList.add(map);
} while (cursor.moveToNext());
}
database.close();
Gson gson = new GsonBuilder().create();
//Use GSON to serialize Array List to JSON
return gson.toJson(offlineList);
}
をこれは、しかし、の形式で私を与える:
[
\t {
\t "id":"1",
\t "name":"stev",
\t "product":"[{"id":"1","title":"box"}]"
\t },
\t {
\t "id":"2",
\t "name":"Lian",
\t "product":"[{"id":"2","title":"bag"}]"
\t }
]
のThは正しい製品ではありませんJson
製品配列を囲む二重引用符のため"product":"[{"id":"1","title":"box"}]"
これを行う方法はありますか?
を言っているの代わりに
cursor.getString(2)
のgson.fromJson(cursor.getString(2), Object[].class)
は、おそらくここではデモで、あなたのケースで動作しますあなたが見る文字列の代わりにJSON配列ですか? –