如何使用Volley遍历JSON文件的内容?

时间:2018-08-16 05:53:32

标签: android json android-volley gson

我正在尝试使用Volley和Gson做一个小例子。我有下面发布的代码。 INTERNET权限已添加。现在,我包含的网址 JSON数据。此JSON数据包含多个属性,其中一些是对象数组。例如,

{
    "header":{
       "headerTitle":"Check2 Shape Compararison",
       "headerDescription":"List of geometric products"
    },
    "filters":[
       "Alle",
       "Verfügbar",
       "Vorgemerkt"
    ],
    "products":[
       {

       },
       {

       }
    ]
}

最初,我对JSON文件的结构一无所知。我想要做的是,遍历JSON文件的内容以获得名称 每个属性。例如,我想要得到以下内容:

header
filters
products

如何使用Volley做到这一点?

错误

 private void fetchJSONObjectRequest() {
    Log.w(TAG, "<fetchJSONObjectRequest>");
    this.mJSONObjectRequest = new JsonObjectRequest(Request.Method.GET, this.BASE_URL, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            Log.i(TAG, "<onResponse> response: " + response);

            try {
                Log.i(TAG, "<onResponse> response: " + response.getJSONArray("products"));
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });
    this.mRequestQueue.add(this.mJSONObjectRequest);
}

1 个答案:

答案 0 :(得分:0)

如果要获取volley response中所有对象的键,可以这样做

Iterator iterator   = jsonObject.keys();
List<String> keysList = new ArrayList<String>();
while(iterator.hasNext()) {
    String key = (String) iterator.next();
    keysList.add(key);
}

然后您可以获取相同的代码

response.getJSONArray(keysList[0]); // or iterating over loop

希望这会有所帮助