преобразовать данные sqlite в json с помощью gson

Я хочу преобразовать данные sqlite в jsonarray, но у меня возникла проблема. Я должен написать этот код для анализа из sqlite в arraylist с помощью hasmap и изменить его на json, используя gson для преобразования

public ArrayList<HashMap<String, String>> tampil_semua_pesanan() {
    SQLiteDatabase database = this.getWritableDatabase();

    // deklarasikan sebuah arraylist yang bisa menampung hashmap
    ArrayList<HashMap<String, String>> arrayListBiodata = new ArrayList<HashMap<String, String>>();

    Cursor cursor = database.rawQuery("SELECT * FROM "+ TABLE_PESAN , null);

    // kursor langsung diarkan ke posisi paling awal data pada tabel_biodata
    if (cursor.moveToFirst()) {
        do {
            // deklarasikan sebuah hashmap, yang bisa menamp
            HashMap<String, String> hashMapBiodata = new HashMap<String, String>();

            hashMapBiodata.put("id", cursor.getString(0));
            hashMapBiodata.put("nama", cursor.getString(1));
            hashMapBiodata.put("jumlah", cursor.getString(2));

            // masukkan hashMapBiodata ke dalam arrayListBiodata
            arrayListBiodata.add(hashMapBiodata);

        } while (cursor.moveToNext());
    }
    cursor.close();
    return arrayListBiodata;
}

а вот как это разобрать

ArrayList<HashMap<String, String>> arrayListPesan = sqLiteHelper.tampil_semua_pesanan();
        userFunction.gson(arrayListPesan);
        Gson gson = new Gson();
        String jsonPesan = gson.toJson(arrayListPesan);

но я понимаю, что это так

[{"id":"11","jjumlah":"12","nama":"Ayam Goreng"},{"id":"11","jjumlah":"12","nama":"Ayam Goreng"},{"id":"11","jjumlah":"12","nama":"Ayam Goreng"}]

я хочу быть таким

["makanan":{"id":"11","jumlah":"12","nama":"Ayam Goreng"},{"id":"11","jumlah":"12","nama":"Ayam Goreng"},{"id":"11","jumlah":"12","nama":"Ayam Goreng"}]

Может кто-нибудь помочь мне


person IMam Chairul Arifin    schedule 28.03.2015    source источник
comment
Эта ссылка может помочь вам: stackoverflow.com/questions/26022133/   -  person Darsh Patel    schedule 28.03.2015


Ответы (1)


попробуйте этот код, надеюсь, он работает...

    public ArrayList<HashMap<String, HashMap<String, String>>> tampil_meja() {
    SQLiteDatabase database = this.getWritableDatabase();
    ArrayList<HashMap<String, HashMap<String, String>>> arrayListMeja = new ArrayList<HashMap<String, HashMap<String, String>>>();

    Cursor cursor = database.rawQuery("SELECT * FROM "+ TABLE_MEJA , null);

    HashMap<String, HashMap<String, String>> hashMap = new HashMap<String, HashMap<String, String>>();
    if (cursor.moveToFirst()) {
        do {
            HashMap<String, String> hashMapBiodata = new HashMap<String, String>();
            hashMapBiodata.put("id", cursor.getString(0));
            hashMap.put("makanan", hashMapBiodata);
        } while (cursor.moveToNext());
    }
    cursor.close();

    arrayListMeja.add(hashMap);
    return arrayListMeja;
}
person Ravi Makvana    schedule 28.03.2015