我正在尝试使用Android获取此JSONArray
,但我无法获得所有项目的codigo
和nombre
。
我离开了我想要的JSON
:
{ “categorias”: {“cfcd208495d565ef66e7dff9f98764da”:{“orden”:0,“codigo”:“001”,“nombre”:“TUBO Y ACCESORIO DE COBRE,LATON”}, “c4ca4238a0b923820dcc509a6f75849b”:{“orden”:1,“codigo”:“002”,“nombre”:“TUBO Y ACCESORIO PVC PRESION”}, “c81e728d9d4c2f636f067f89cc14862c”:{ “奥登”:2 “codigo”: “003”, “农布雷”: “AISLAMIENTO”}, “eccbc87e4b5ce2fe28308fd9f2a7baf3”:{“orden”:3,“codigo”:“004”,“nombre”:“MONTAJE DE AGUA SANITARIA”}, “a87ff679a2f3e71d9181a67b7542122c”:{“orden”:4,“codigo”:“005”,“nombre”:“ABRAZADERAS FONTANERIA”},“e4da3b7fbbce2345d7772b0674a318d5”:{“orden”:5,“codigo”:“006”,“nombre “:”FLEXOS DE ACERO“}, “1679091c5a880faf6fb5e6087eb1b2dc”:{“orden”:6,“codigo”:“007”,“nombre”:“ACCESORIOS DE SANEAMIENTO”}, ... ... ...
这是我在Android上的代码,我总是得到null响应:
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, showUrl, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
System.out.println("Respuesta:"+ response.toString());
try {
listaCategorias.clear();
int array=0;
JSONArray categorias = response.getJSONArray("categorias");
for (int i = 0; i < categorias.length(); i++) {
JSONObject objet = categorias.getJSONObject(i);
String titulo = objet.getString("nombre");
if (isIntegerParseInt(String.valueOf(titulo.charAt(0))))
listaCategorias.add(titulo);
}
array++;
onCallBack.onSuccess(listaCategorias);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("ErrorRespuesta: "+error.getMessage());
}
});
requestQueue.add(jsonObjectRequest);
答案 0 :(得分:3)
它不是JSON ARRAY
它的JSON OBJECT
供你参考我发布样本json数组
"three_day_forecast": [
{
"conditions": "Partly cloudy",
"day" : "Monday",
"temperature": 20
},
{
"conditions": "Showers",
"day" : "Tuesday",
"temperature": 22
},
{
"conditions": "Sunny",
"day" : "Wednesday",
"temperature": 28
}
]
this引用使用了数据。
答案 1 :(得分:0)
它不是一个数组,而是一个JSONObject,你需要修改你的JSON以获得一个带有[]而不是{}的数组。或者你通过getJSONObject得到它。
答案 2 :(得分:0)
参考JSON字符串,您发布的categorias
不是 JSONArray 。它是一个对象,JSON字符串仍然无效。
在字符串的顶部,您将密钥作为类别,现在如果要将其用作数组,则必须将类别的值设置为数组在JSON字符串中的 [] 中指定。
如果你在带索引的循环中使用它,那么另一件事就是尽量避免使用 JSON数组的随机密钥。因此,您的 JSON字符串可能如下所示,以支持您的Android代码。
{
"categories": [
{ object 1... },
{ object 2... },
and so on...
]
}
您可以在此处看到 JSON 的类型:
http://json-parser.com/53b37f69