我有这个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?它返回了这个错误:
在org.json.JSONObject类型的produtos中无法转换为JSONArray ;
答案 0 :(得分:0)
JSONObject produtos= new JSONObject(json);
JSONObject object = produtos.optJSONObject("produtos");
答案 1 :(得分:-1)
你必须使用JSONObject来解析Json,因为这个json没有Array元素。如果你试图使用JSONArray解析这个json,它会显示错误消息 org.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();
}
}
这可能有助于正确理解。