如何从URL获取复杂的JSON?

时间:2016-02-26 04:46:13

标签: android arrays json

我的json是这样的

{
    "results": [{
        "syllabus": "CBSE",
        "grade": "5",
        "subject": "Kannada",
        "topic": "Grammar Level 1",
        "id": 28
    }]
}

使用Volley

         JsonArrayRequest req = new JsonArrayRequest(urlJsonArry,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    Log.d(TAG, response.toString());

                    try {
                        // Parsing json array response
                        // loop through each json object
                        jsonResponse = "";
                        for (int i = 0; i < response.length(); i++) {

                            JSONObject person = (JSONObject) response
                                    .get(i);

                            System.out.println(person.toString());





                            String syllabus = person.getString("syllabus");
                            String grade= person.getString("grade");
                            jsonResponse += "Name: " + syllabus + "\n\n";
                            jsonResponse += "Email: " + grade + "\n\n";


                        }

2 个答案:

答案 0 :(得分:0)

            if (!result.equalsIgnoreCase("")) {

            try {
                JSONObject jsonObject = new JSONObject(result); //result is what you get responce
                JSONArray jsonArray = jsonObject.optJSONArray("results");
                if (jsonArray != null) {
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject jsonObjects = jsonArray.optJSONObject(i);
                        String syllabus = jsonObjects.optString("syllabus");
                        Int grade = jsonObjects.optInt("grade");
                        String subject = jsonObjects.optString("subject");
                        String topic = jsonObjects.optString("topic");
                        Int id = jsonObjects.optInt("id");                                                    
                    }
                    } else {
                    Log.e("", "error parse json", "--->" + e.getMessage());
                }
            } catch (Exception e) {
                Log.e("", "error parse json", "--->" + e.getMessage());
            }
        } else {
            Log.e("", "error parse json", "--->" + e.getMessage());
        }

答案 1 :(得分:0)

你的Json有一个对象然后是数组..试试这个

JsonObjectRequest req = new JsonObjectRequest(urlJsonArry,

            new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
        Log.d(TAG, response.toString());

              try {
          JSONOArray array = response.getJSONArray("results") 
                    // Parsing json array response
                    // loop through each json object
                    jsonResponse = "";
                    for (int i = 0; i < array.length(); i++) {

                        JSONObject person = (JSONObject) array
                                .get(i);

                        System.out.println(person.toString());

                        String syllabus = person.getString("syllabus");
                        String grade= person.getString("grade");
                        jsonResponse += "Name: " + syllabus + "\n\n";
                        jsonResponse += "Email: " + grade + "\n\n";


                    }