首页 > 解决方案 > JSONArray 类型无法转换为 JSONObject

问题描述

当我调用我的服务网站时,我有这个异常:org.json.JSONException:Value[{}]类型org.json.JSONArray不能转换为JSONObject

private void jsonParse(){
        String url="http://192.168.56.1:8095/rest/workouts/all";
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                            JSONArray jsonArray = response.getJSONArray("");

                            for(int i = 0; i < jsonArray.length(); i++) {
                                JSONObject w = jsonArray.getJSONObject(i);

                                String title = w.getString("title");
                                String goal = w.getString("goal");

                                txtv.append(title + ", " + goal +"\n\n");
                            }
                        ...

顺便说一句,这是JSON格式

[{"id":"1","title":"title","goal":"goal","exercice":"Exercice 
1","difficulty":"Beginner","duration":"3","image":"..","description":"..."},]

标签: androidjsonandroid-studioandroid-volleyandroid-json

解决方案


这是我找到的解决方案,谢谢大家♥..

    private void jsonParse(){
        String url="http://192.168.56.1:8095/rest/workouts/all";
        JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET,url,null,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray jsonArray) {
                        try {
                            
                            for(int i = 0; i < jsonArray.length(); i++) {


                                JSONObject jsonobject = jsonArray.getJSONObject(i);

                                String title = jsonobject.getString("title");
                                String goal = jsonobject.getString("goal");

                                txtv.append(title + ", " + goal +"\n\n");
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });
        mQueue.add(jsonArrayRequest);
    }


推荐阅读