как я могу получить данные из JSONObject с помощью Java? - PullRequest
0 голосов
/ 07 мая 2020

У меня есть строка с именем input Json, содержащая

{"listPruebas": [

 

    {

      "nombrePrueba" : "pruebaA",

 

      "id" : 1,

 

      "tipoPrueba" : "PRUEBABASE1",

 

      "elementoBase" : "tipoA",

 

            "listaMarca": [

 

            {

 

                "elemento": "elemento1 ",

 

                "tipo": "ABC",

 

                "cadena": "SFSG34235WF32"

 

            },

 

            {

 

                 "elemento":"elemento2",

 

                 "tipo":"DEF",

 

                 "cadena":"DJRT64353GSDG"

 

            },

 

            {

 

                "elemento" : "elemento3",

 

                "formato ":"JPG"

 

 

            }

 

    ]},

 

    {

 

      "nombrePrueba" : "pruebaB",

 

      "id" : 2,

 

      "tipoPrueba" : "PRUEBABASE2",

 

      "elementoBase" : "imagenPrueba",

 

            "listaMarca2": [

 

               {

 

                   "elemento" : "imagen",

 

                   "tipo": "tipo5",

 

                   "cadena": "iVBORw0KGgoAAAANSUhEUgAAAgAAAA"

 

                }

 

            ]

    }

 

 

 

            ],

 

 

 

                "listaBuscar":

 

                [

 

                {

 

                               "tipoBusqueda":"busqueda1",

 

                               "id" : 1,

 

                               "operacion" : "operacion1",

 

                               "valor" : "12"

 

                },

 

                {

 

                               "tipoBusqueda":"binario",

 

                               "id" : 2,

 

                               "operacion" : "operacion2",

 

                               "valor" : "13"

 

                },

 

                {

 

                               "tipoFiltro":"numerico",

 

                               "id" : 31,

 

                               "operacion" : "MENOR_QUE",

 

                               "valor" : "1980",

 

                               "intervalo" : 1

 

                }

 

                ]

 

 

 

 

}

, и я преобразовал String в JSONObject таким образом

JSONObject object = new JSONObject(inputJson);

и я получил это

jsonObject::{"listaBuscar":[{"valor":"12","id":1,"operacion":"operacion1","tipoBusqueda":"busqueda1"},{"valor":"13","id":2,"operacion":"operacion2","tipoBusqueda":"binario"},{"tipoFiltro":"numerico","intervalo":1,"valor":"1980","id":31,"operacion":"MENOR_QUE"}],"listPruebas":[{"listaMarca":[{"tipo":"ABC","elemento":"elemento1","cadena":"SFSG34235WF32"},{"tipo":"DEF","elemento":"elemento2","cadena":"DJRT64353GSDG"},{"elemento":"elemento3","formato":"JPG"}],"elementoBase":"tipoA","tipoPrueba":"PRUEBABASE1","nombrePrueba":"pruebaA","id":1},{"elementoBase":"imagenPrueba","tipoPrueba":"PRUEBABASE2","listaMarca2":[{"tipo":"tipo5","elemento":"imagen","cadena":"iVBORw0KGgoAAAANSUhEUgAAAgAAAA"}],"nombrePrueba":"pruebaB","id":2}]}

и теперь мне нужно извлечь информацию, но я не знаю, как это сделать, например, я пробую это

object.getString("elemento1");

но я получил эту ошибку

Вызвано: org. json .JONException: JSONObject ["elemento1"] не найден

помогите пожалуйста

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

You json содержит два массива json, выберите их как -

 JSONArray listaBuscArray = jsonObj.getJSONArray("listaBuscar");
 JSONArray listPruebasArray = jsonObj.getJSONArray("listPruebas");

Теперь вы можете обрабатывать и использовать их как -

for(int i=0; i<listaBuscArray.length; i++){
    JSONObject obj = listaBuscArray.getJSONObject(i);

    .... your logic

}
0 голосов
/ 07 мая 2020

Вы не можете получить объект-гнездо JSON с верхнего уровня. Это похоже на древовидную карту. Вам нужно преобразовать его в объект java или получить уровень за уровнем. проверьте этот пост , много способов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...