ERROR: com.android.volley.ParseError: org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject

ERROR: com.android.volley.ParseError: org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject

JsonParse.Java 试图从 URL 获取 json 数组对象,但它抛出解析错误
CountriedBean 是我的 POJO class.
parse_json 只有 ListView 和 parse_json_view 有 4 个 TextView

谁能帮帮我.................

private List<CountriesBean> cntries= new ArrayList<CountriesBean>();
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.parse_json);

            RequestQueue queues = Volley.newRequestQueue(JsonParse.this);

            JsonObjectRequest myRequest = new JsonObjectRequest(Request.Method.GET,
                    "https://github.com/SaiNitesh/REST-Web-services/blob/master/RESTfulWS/json_file.json",
                    null,
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            try{
                                Log.i("myCountries**", "response:" +response);
                            JSONArray countryItems = response.getJSONArray("countryItems");

                            Log.i("myTagx", "response:" +countryItems);

                                for(int i=0; i<countryItems.length();i++){
                                    JSONObject temp= countryItems.getJSONObject(i);

                                    String nm = temp.getString("nm");
                                    String cty = temp.getString("cty");
                                    String hse = temp.getString("hse");
                                    String yrs = temp.getString("yrs");

                                    cntries.add(new CountriesBean(nm, cty, hse, yrs));
                                }
                            } catch(JSONException e){
                                Log.i("myTag",e.toString());
                            }
                        }
                    }, new Response.ErrorListener(){
                @Override
                public void onErrorResponse(VolleyError error){
                    Log.i("myTag", "Error:"+error.toString());
                }
            });

            queues.add(myRequest);

            ArrayAdapter<CountriesBean> adapter=new customAdapter();

            ListView myFirstListView = (ListView) (findViewById(R.id.myCountriesView));
            myFirstListView.setAdapter(adapter);


            myFirstListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
                //WebView myListViewbrowser = (WebView) findViewById(R.id.myListViewbrowser);
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                    Toast.makeText(JsonParse.this,"My List View Item",Toast.LENGTH_SHORT).show();
                }
            });


        }

        private class customAdapter extends ArrayAdapter<CountriesBean>{
            public customAdapter() {
                super(JsonParse.this, R.layout.parse_json_view, cntries);

            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                /*getView method is like "for loop"
                For First time convertView=null, then it gets 1st list, then it returns(return convertView) the first list,
                then the convertView will be null
                After that it starts from here again for 2nd list and it continues*/
                if(convertView == null){
                    convertView = getLayoutInflater().inflate(R.layout.parse_json_view, parent,false);

                }


                TextView countryName = (TextView) convertView.findViewById(R.id.name);
                TextView countryCity = (TextView) convertView.findViewById(R.id.city);
                TextView countryHouse = (TextView) convertView.findViewById(R.id.house);

                CountriesBean myCurrentctries = cntries.get(position);


                countryName.setText(myCurrentctries.getNm());
                countryCity.setText(myCurrentctries.getCty());
                countryHouse.setText( myCurrentctries.getHse() );

                return convertView;
            }


        }

url https://github.com/SaiNitesh/REST-Web-services/blob/master/RESTfulWS/json_file.json 的响应是一个 HTML 页面,所以你得到了那个异常。

请改用https://raw.githubusercontent.com/SaiNitesh/REST-Web-services/master/RESTfulWS/json_file.json