【问题标题】:Is there a way to loop URL for fetching JSON data in android studio?有没有办法循环 URL 以在 android studio 中获取 JSON 数据?
【发布时间】: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 数据。

我希望从

获取所有 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?

【问题讨论】:

  • 你知道循环吗?从 1 开始,在 4 结束。
  • 是的,先生,我愿意..

标签: android json android-volley


【解决方案1】:
//Try this
int MAX_OBJECT = 100;
for (int i =1;i<MAX_OBJECT;i++){
     String no = String.valueOf(i);
     jsonParse(no);
}

private void jsonParse(final String NoOfDepartment){
String url="http://10.180.243.14:8080/api/departments/"+NoOfDepartment;
.......
}

【讨论】:

  • 请在您的答案中添加更多详细信息和解释。
  • 我将 previuos onClick 替换为 @Override public void onClick(View v) { //试试这个 int MAX_OBJECT = 100; for (int i =1;i
  • 还有 jsonParse with private void jsonParse(final String NoOfDepartment){ String url="10.180.243.14:8080/api/departments/"+NoOfDepartment;
猜你喜欢
  • 1970-01-01
  • 2022-08-12
  • 2019-09-08
  • 2020-09-27
  • 1970-01-01
  • 2014-08-21
  • 2023-04-08
  • 2019-09-29
  • 2021-03-15
相关资源
最近更新 更多