Build JSONArray from SQLite database

0

I have a method with which I want to put some records of the BD in a JSON array, for this I first created a JSON Object for each field name to have its value, the detail that I have 50 records and it creates me a JSON array with 50 JSON object but what it is doing is that the last record is entering it 50 times.

The following is the code

public JSONArray getInsertPesquisas() throws JSONException {
    JSONObject joPesquisas = new JSONObject();
    JSONArray joTotal = new JSONArray();
    List<PlPesquisaLarvaria> pesquisas;
    PlPesquisaLarvariaDao pesDao = daoSession.getPlPesquisaLarvariaDao();
    pesquisas = pesDao.queryBuilder().where(PlPesquisaLarvariaDao.Properties.Estado_sync.eq(1)).list();
    SimpleDateFormat dateFormat;
    dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    for (PlPesquisaLarvaria p : pesquisas) {
        String date = dateFormat.format(p.getFecha());
        joPesquisas.put("id", p.getId());
        joPesquisas.put("idTablet", p.getIdTablet());
        joPesquisas.put("idSibasi", p.getIdSibasi());
        joPesquisas.put("idSemana", p.getIdSemanaEpidemiologica());
        joPesquisas.put("idCriadero", p.getIdCriadero());
        joPesquisas.put("idCaserio", p.getIdCaserio());
        joPesquisas.put("idUsuario", p.getIdUsuarioReg());
        joPesquisas.put("idEstado", p.getIdEstado());
        joPesquisas.put("fecha", p.getFechaHoraReg());
        joPesquisas.put("indice", p.getIndiceLarvario());
        joPesquisas.put("anopheles34", p.getAnophelesDos());
        joPesquisas.put("anopheles12", p.getAnophelesUno());
        joPesquisas.put("culicino12", p.getCulicinosUno());
        joPesquisas.put("culicino34", p.getCulicinosDos());
        joPesquisas.put("pupa", p.getPupa());
        joPesquisas.put("cucharonadas", p.getNumeroCucharonada());
        joPesquisas.put("ancho", p.getAncho());
        joPesquisas.put("largo", p.getLargo());
        joTotal.put(joPesquisas);
    }
    return joTotal;
}

So I built the JSON the format of the JSON would be the desired:

[
{
    "id":50,
    "idTablet":2,
    "idSibasi":14,
    "idSemana":39,
    "idCriadero":338,
    "idCaserio":4987,
    "idUsuario":11,
    "idEstado":1,
    "fecha":"2018-09-27"
},
{
    "id":51,
    "idTablet":2,
    "idSibasi":14,
    "idSemana":39,
    "idCriadero":338,
    "idCaserio":4987,
    "idUsuario":11,
    "idEstado":1,
    "fecha":"2018-09-27"
},
{
    "id":52,
    "idTablet":2,
    "idSibasi":14,
    "idSemana":39,
    "idCriadero":338,
    "idCaserio":4987,
    "idUsuario":11,
    "idEstado":1,
    "fecha":"2018-09-27"
}
]
    
asked by Igmer Rodriguez 28.09.2018 в 23:40
source

1 answer

2

You have to recreate your object in each cycle

for (PlPesquisaLarvaria p : pesquisas) {
    joPesquisas = new JSONObject(); // se tiene que crear de nuevo tu objeto
    String date = dateFormat.format(p.getFecha());

      ...(demas codigo)

    joTotal.put(joPesquisas);
}
return joTotal;

}

    
answered by 28.09.2018 / 23:54
source