keySet() para iterar um array com várias chaves

05/02/2016

1

Boa tarde pessoal!

Tenho aqui uma dúvida de como iterar um array com mais de uma chave. Ao usar o keySet(), meu programa retornou apenas a primeira posição do array. Como eu faria para percorre-lo e imprimir todos seus argumentos?

Trata-se da seguinte estrutura json:
"arguments": [
{
"name": "DirectoryHandle",
"value": "0x00000088"
},
{


Meu foreach encontra-se desta maneira:

Responder

Posts

05/02/2016

Si Brandão

Ops!

Json:
"arguments": [
{
"name": "DirectoryHandle", 
"value": "0x00000088"
}, 
{
"name": "DesiredAccess", 
"value": "15"
}, 
{
"name": "ObjectAttributes", 
"value": "C:\Sessions`\BaseNamedObjects"
}
],


Foreach
 if(stringCallsKey.equals("arguments")) {
                                    
                                    JSONObject argumentsObject = (JSONObject) argumentsArray.get(0);
                                    
                                    for(Object argumentsKey : argumentsObject.keySet()) {
                                        System.out.println("        Arguments "+argumentsKey+": "+argumentsObject.get(argumentsKey));
                                    }
                                }
Responder

05/02/2016

Jothaz

Esta questão pode ser abordada de várias formas, veja se algumas das sugestões lhe ajuda.

  JSONArray jsonarr = new JSONArray("seu-json");


    for(int i = 0; i < jsonarr.length(); i++){

    JSONObject jsonobj = jsonarr.getJSONObject(i);
    String str_course_slug=jsonobj.getString("campo1");
    String str_course_description=jsonobj.getString("campo2");
    }


Ou:

Iterator<JSONObject> iterator = jsonObject.values().iterator();

while (iterator.hasNext()) {
 jsonChildObject = iterator.next();

  String id = (String) jsonChildObject.get("id");
}


Ou:

for(int i = 0; i<jobject.names().length(); i++){
    Log.v(TAG, "key = " + jobject.names().getString(i) + " value = " + jobject.get(jobject.names().getString(i)));
}
}
Responder

05/02/2016

Si Brandão

Então, este é só um trecho de um arquivo json maior. Tenho aqui um array dentro de outro array, esses laços não deram certo.
A estrutura do meu arquivo json encontra-se da seguinte forma:

"behavior": {
"processes": [
{
Responder

05/02/2016

Si Brandão

Então, este é só um trecho de um arquivo json maior. Tenho aqui um array dentro de outro array, esses laços não deram certo.
A estrutura do meu arquivo json encontra-se da seguinte forma:

"behavior": {
         "processes": [
           {
            "calls": [
            { 
              "arguments": [
             {
             }
             ...
Responder