Android 工作室:如何在另一个 JSON 对象中循环遍历 JSON 个对象

Android studio : How to loop through JSON objects within another JSON object

所以我有一个带有三个字符串参数(名称、成分、图像)的 Pizza 对象。 我有一个 JSON 格式的字符串:

{"Meat pizza":{"Ingredients":"cheese,meat","image":"meat"},"Cheese pizza":{"Ingredients":"cheese","image":"cheese"}}

我假设是 JSON 个对象中的 JSON 个对象。 我正在使用 Volley 库,到目前为止我想到了这个:

private RequestQueue queue = Volley.newRequestQueue(this);
private String url ="http://daviddurand.info/D228/pizza/";
public ArrayList<Pizza> listPizza(){
    final ArrayList<Pizza> list=new ArrayList<>();
    StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    JSONObject obj = null;
                    try {
                        obj = new JSONObject(response);
                        Iterator<String> iter = obj.keys();
                        while (iter.hasNext()) {
                            String key = iter.next();
                            try {
                                Pizza pizza=new Pizza();
                                Object value = obj.get(key);
                                //fill the Pizza object with data
                                pizza.setName();
                                pizza.setIngredients();
                                pizza.setImage();
                                //insert it into the list
                                list.add(pizza);
                            } catch (JSONException e) {
                                // Something went wrong!
                            }
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            //error
        }
    });
// Add the request to the RequestQueue.
        queue.add(stringRequest);
        return list;
    }

你可能已经猜到了,到目前为止它什么也没做,因为我不知道如何获取数据来填充 Pizza 对象..

注意:值得一提的是,我无法修改数据的创建方式,因为我被迫从 here

使用它

您可以按照此操作 Tutorial 而且我建议您使用对象数组而不是对象对象。喜欢这个表格:

[
    {
    "name" : "Ravi Tamada", 
    "email" : "ravi8x@gmail.com",
    "phone" : {
        "home" : "08947 000000",
        "mobile" : "9999999999"
    }
    },
    {
    "name" : "Tommy", 
    "email" : "tommy@gmail.com",
    "phone" : {
        "home" : "08946 000000",
        "mobile" : "0000000000"
    }
    }
]

简单多了。我希望这会有用。

我没有测试过这个,你可以从 JSONObject 中获取 JSONObject

 Object value = obj.get(key);
  //fill the Pizza object with data
   pizza.setName(key);
  JSONObject jsonobject2 =  obj.getJSONObject(key);
    pizza.setIngredients(jsonobject2.getString("ingredients"));
    pizza.setImage(jsonobject2.getString("image"));