【发布时间】:2019-04-24 09:58:49
【问题描述】:
我正在创建一个使用 Volley 从 url 获取 JSON 数据的 android 应用
http://10.180.243.14:8080/api/departments/1
这将获取 JSON 格式如下的所有部门 1 的员工:
{
"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"
}
]
}
我可以使用 volley 正确获取此信息。 但我想从部门 2、3、4 等获取所有 JSON 数据。
下面是我的 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);
}
}
这将只获取部门 1 的 JSON 数据。
我希望从
获取所有 JSONhttp://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?
【问题讨论】:
-
你知道循环吗?从 1 开始,在 4 结束。
-
是的,先生,我愿意..
标签: android json android-volley