How to parse in Android Json

Asked

Viewed 168 times

2

I need to parse for the following json

{
    "rssEmpregados": {
        "pesquisa": "marcia",
        "registoInicial": "0",
        "ordem": "ASC",
        "parametrosList": [
            {
                "parametros": [],
                "tabela": "EMPREGADOS_CRSS",
                "coluna1": "CODIGO_CRSS",
                "coluna2": "DESCRICAO",
                "coluna": "CODIGO_CRSS"
            },
            {
                "parametros": [],
                "tabela": "EMPREGADOS_FORMAS_PAGAMENTO",
                "coluna1": "CODIGO_FORMA_PAGAMENTO",
                "coluna2": "DESCRICAO",
                "coluna": "CODIGO_FORMA_PAGAMENTO"
            }
        ]
    }
}

I’ve already made the code for the opening part, but I’m having a hard time with the rest.

try {
    JSONObject js = new JSONObject();
    JSONObject rssEmpregados = new JSONObject();
    rssEmpregados.put("pesquisa", procuraTextoEt.getText());
    rssEmpregados.put("registoInicial", "0");
    rssEmpregados.put("ordem", "ASC");
    js.put("rssEmpregados", rssEmpregados);
    Log.e("params", rssEmpregados.toString());

} catch (JSONException e) {
    e.printStackTrace();
}

4 answers

1

Use the GSON.

Assemble an object exactly in the structure you need with implements Serializable

Sub-items with list occurrences must be inside Sample Arrays: ArrayLists<parametrosList>...

There you convert easily with:

gson.toJson(objetoX); //retorna um json em string

objeto= gson.fromJson("seu json aqui", ObjetoX.class); //retorna um objeto

1


After a few more researches I got what I wanted, I leave here for the future someone who needs.

try {
           JSONArray parametrosList = new JSONArray();
           JSONObject rssEmpregados = new JSONObject();
           rssEmpregados.put("pesquisa", procuraTextoEt.getText());
           rssEmpregados.put("registoInicial", "0");
           rssEmpregados.put("ordem", "ASC");
           rssEmpregados.put("parametrosList", parametrosList);
           js.put("rssEmpregados", rssEmpregados);

           JSONObject codigoEstabelecimento = new JSONObject();
           codigoEstabelecimento.put("parametros", "[]");
           codigoEstabelecimento.put("tabela", "ESTABELECIMENTOS");
           codigoEstabelecimento.put("coluna1", "CODIGO_ESTABELECIMENTO");
           codigoEstabelecimento.put("coluna2", "DESCRICAO");
           codigoEstabelecimento.put("coluna", "CODIGO_ESTABELECIMENTO");
           parametrosList.put(codigoEstabelecimento);


           JSONObject codigoSituacao = new JSONObject();
           codigoSituacao.put("parametros", "[]");
           codigoSituacao.put("tabela", "EMPREGADOS_SIT_PROFISSIONAIS");
           codigoSituacao.put("coluna1", "CODIGO_SITUACAO");
           codigoSituacao.put("coluna2", "DESCRICAO");
           codigoSituacao.put("coluna", "CODIGO_SITUACAO");
           parametrosList.put(codigoSituacao);

Thank you all.

1

Put everything inside a JSONARRAY. Here’s an example:

try {
                        JSONArray jsArr = new JSONArray();
                        JSONObject js = new JSONObject();
                        JSONObject rssEmpregados = new JSONObject();
                        rssEmpregados.put("pesquisa", procuraTextoEt.getText());
                        rssEmpregados.put("registoInicial", "0");
                        rssEmpregados.put("ordem", "ASC");
                        js.put("rssEmpregados", rssEmpregados);
                        jsArr.put(js);
                        js = new JSONObject();
                        Log.e("params", rssEmpregados.toString());

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

This code will mount an array for 1 json item, to put more just put a loop in the middle (for or while)

1

Dude, it starts with the indentation of your Json formatting. I think it makes it easier to read the structure of the object you will need

{ 
    "rssEmpregados": 
    { 
        "pesquisa":"marcia", 
        "registoInicial":"0", 
        "ordem":"ASC",  
        "parametrosList" :[ 
            {
                "parametros":[],
                "tabela" : "EMPREGADOS_CRSS",
                "coluna1" : "CODIGO_CRSS",
                "coluna2" : "DESCRICAO",
                "coluna" : "CODIGO_CRSS"
            },
            {
                "parametros":[],
                "tabela" : "EMPREGADOS_FORMAS_PAGAMENTO",
                "coluna1" : "CODIGO_FORMA_PAGAMENTO",
                "coluna2" : "DESCRICAO",
                "coluna" : "CODIGO_FORMA_PAGAMENTO"
            }
        ]
    }
}

From this point you get to assemble your properties. You need to be attentive only to Arrays, as for example in "parametrosList". There you will need to pass a Jsonarray, which has several Jsonobject.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.