Я создаю приложение для Android, которое извлекает данные JSON из URL-адреса, используя Volley
http://10.180.243.14:8080/api/departments/1
. Это позволит выбрать всех сотрудников отдела 1, чей JSON таков:
{
"id": 1,
"deptName": "Raj Bhavan",
"logo": [],
"contacts": [
{
"contactId": 12,
"empName": "John",
"designation": "Director",
"mobile": "9862136415",
"landlineOffice": "123456",
"landlineRes": "2334567",
"fax": "555679",
"email": "administer@gmail.com"
},
{
"contactId": 19,
"empName": "Samuel ",
"designation": "Software Developer",
"mobile": "9876542019",
"landlineOffice": "234567",
"landlineRes": "2320398",
"fax": "456678",
"email": "sam@ymail.com"
}
]
}
Iможно получить это правильно, используя залп.Но я хочу получить все данные JSON из департамента 2,3,4 и т. Д.
Ниже приведен мой код MainActivity.java:
public class MainActivity extends AppCompatActivity {
private TextView mTextViewResult;
private RequestQueue mQueue;
private TextView mTextViewDept;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextViewDept =findViewById(R.id.text_view_dept);
mTextViewResult=findViewById(R.id.text_view_result);
Button buttonParse=findViewById(R.id.button_parse);
mQueue=Volley.newRequestQueue(this);
buttonParse.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
jsonParse();
}
});
}
private void jsonParse(){
String url="http://10.180.243.14:8080/api/departments/1";
JsonObjectRequest request=new JsonObjectRequest(Request.Method.GET,url,null,
new Response.Listener<JSONObject>(){
@Override
public void onResponse(JSONObject response){
Log.i("tt","deptJson"+response);
try {
JSONArray jsonArray=response.getJSONArray("contacts");
String deptName=response.getString("deptName");
for(int i=0;i<jsonArray.length();i++){
JSONObject contact=jsonArray.getJSONObject(i);
int contactId=contact.getInt("contactId");
String empName=contact.getString("empName");
String designation=contact.getString("designation");
mTextViewResult.append(empName+","+ String.valueOf(contactId)+","+designation+"\n\n");
}
mTextViewDept.setText(deptName);
} catch (JSONException e) {
e.printStackTrace();
}
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
mQueue.add(request);
}
}
Это позволит получить данные JSON только из отдела 1.
Я ожидаю получить все файлы JSON из
http://10.180.243.14:8080/api/departments/2
http://10.180.243.14:8080/api/departments/3
http://10.180.243.14:8080/api/departments/4
...
Я сам создал API, и данные будут добавлены в будущем.Есть ли способ динамически перебирать все URL?