2017-04-25 9 views
-2

私はこのJSONを持っている:ループ動的

{"produtos": { 
    "Su\u00edte Master": { 
     "variacao": { 
      "variationcustom1bla": { 
       "descricao": "2\u00aa a 6\u00aa - 1h", 
       "preco": "60.00", 
       "percentual": "0.00" 
      }, 
      "variationcusstom1bla": { 
       "descricao": "2\u00aa a 6\u00aa - 2h", 
       "preco": "70.00", 
       "percentual": "0.00" 
      }, 

     } 
    }, 
    "Suitetematica": { 
     "variacao": { 
      "variation bla2 custom bla2": { 
       "descricao": "3\u00aa at\u00e9 5\u00aa as 18h - 2h", 
       "preco": "99.00", 
       "percentual": "20.00" 
      }, 
      "Pernoites": { 
       "descricao": "Pernoites", 
       "preco": "149.00", 
       "percentual": "5.00" 
      } 
     } 
    } 
} 
} 
try { 
    JSONObject produtos = new JSONObject(json); 
    JSONArray produtosArr = produtos.getJSONArray("produtos"); 
} catch (JSONException e) { 
    // JSON error 
    e.printStackTrace(); 
} 

にはどうすれば(JSONObjectを使用して、このJSONを通過することができますか)?このエラーが返されます。

produtos(タイプorg.json.JSONObject)はJSONArrayに変換できません ;

+0

どのようにあなたがそれを –

+0

を取得している私たちを見る、私は親切に見て、私の答えを編集しました。 @MartinDeSimone –

答えて

-1
あなたはこのJSONは何の配列要素。だからあなたはJSONArrayを使用して、このJSONを解析しようとしているならば、それは org.json.JSONObjectがに変換することはできませんエラーメッセージが表示されていないため、JSONを解析するJSONObjectを使用する必要がなければなりません

JSONArray

あなたは、コードを表示することができます。

String jsonString = "{\"produtos\":{\"Suíte Master\":{\"variacao\":{\"variationcustom1bla\":{\"descricao\":\"2ª a 6ª - 1h\",\"preco\":\"60.00\",\"percentual\":\"0.00\"},\"variationcusstom1bla\":{\"descricao\":\"2ª a 6ª - 2h\",\"preco\":\"70.00\",\"percentual\":\"0.00\"},\"variationssscustom1bla\":{\"descricao\":\"2ª a 6ª - 3h\",\"preco\":\"80.00\",\"percentual\":\"0.00\"},\"variatissssoncustom1bla\":{\"descricao\":\"Pernoite: de 21h até as 14h\",\"preco\":\"130.00\",\"percentual\":\"0.00\"}}},\"Suitetematica\":{\"variacao\":{\"variation bla2 custom bla2\":{\"descricao\":\"3ª até 5ª as 18h - 2h\",\"preco\":\"99.00\",\"percentual\":\"20.00\"},\"Pernoites\":{\"descricao\":\"Pernoites\",\"preco\":\"149.00\",\"percentual\":\"5.00\"}}}}}"; 
    try { 
     JSONObject rootJObj = new JSONObject(jsonString) ; 

     JSONObject jProdutos = rootJObj.getJSONObject("produtos") ; 
     JSONObject suOBj1 = jProdutos.getJSONObject("Suíte Master"); 

     JSONObject variacaoJObj = suOBj1.getJSONObject("variacao"); 
     JSONObject varJObj1 = variacaoJObj.getJSONObject("variationcustom1bla"); 
     String descricao1 = varJObj1.getString("descricao"); 
     String preco1 = varJObj1.getString("preco"); 
     String percentual1 = varJObj1.getString("percentual"); 
     JSONObject varJObj2 = variacaoJObj.getJSONObject("variationcustom1bla"); 
     String descricao2 = varJObj2.getString("descricao"); 
     String preco2 = varJObj2.getString("preco"); 
     String percentua2 = varJObj2.getString("percentual"); 
     JSONObject varJObj3 = variacaoJObj.getJSONObject("variationcustom1bla"); 
     String descricao3 = varJObj3.getString("descricao"); 
     String preco3 = varJObj3.getString("preco"); 
     String percentual3 = varJObj3.getString("percentual"); 

     JSONObject varJObj4 = variacaoJObj.getJSONObject("variationcustom1bla"); 
     String descricao4 = varJObj4.getString("descricao"); 
     String preco4 = varJObj4.getString("preco"); 
     String percentual4 = varJObj4.getString("percentual"); 
     JSONObject suOBj2 = jProdutos.getJSONObject("Suitetematica"); 
     JSONObject vaJsonObject = suOBj2.getJSONObject("variacao"); 
     JSONObject varBla2 = vaJsonObject.getJSONObject("variation bla2 custom bla2"); 
     String descricao5 = varBla2.getString("descricao"); 
     String preco5 = varBla2.getString("preco"); 
     String percentua5 = varBla2.getString("percentual"); 
     JSONObject Pernoites = vaJsonObject.getJSONObject("Pernoites"); 
     String descricao6 = Pernoites.getString("descricao"); 
     String preco6 = Pernoites.getString("preco"); 
     String percentua6 = Pernoites.getString("percentual"); 

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

が、これは適切に理解することが参考になりますように。

+0

これはあまり効率的ではありません –

+0

@MartinDeSimone私はこれを変更することができるので、私はこのjsonをJavaの操作をより簡単にしておく方がいいです –

+0

はい、これはハードコードのようです。彼は良い方法でjsonを作り出さなければなりません。もしこれがjsonなら、あなたはこのやり方をする必要があります。他の方法があれば、教えてください。 – guptaatul91

0
JSONObject produtos= new JSONObject(json); 
JSONObject object = produtos.optJSONObject("produtos");