我正在尝试使用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);
}
答案 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
希望这会有所帮助