2016-12-01 131 views
-1

JsonParse.Java 尝试从URL获取json数组对象,但它抛出解析错误
和CountriedBean是我的POJO类。
parse_json只是有ListView和 parse_json_view有4个的TextView的错误:com.android.volley.ParseError:org.json.JSONException:值java.lang.String类型的<!DOCTYPE无法转换为JSONObject

任何人都可以请帮我................

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; 
      } 


     } 
+0

请发布错误日志 –

回答

3

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代替。

+1

非常感谢你..... !!有用。 – Batman

+0

如果我想要像JSON文件一样上传图片,那么该怎么办?我如何将它显示为原始数据? – Batman

+0

我认为你应该为你的新需求创建一个新问题,或者你可以在SO中搜索拳头,提供很多链接(其中之一是http://stackoverflow.com/questions/16797468/how-to-send-a- multipart-form-data-post-in-android-with-volley),但你也需要澄清,下载或上传 – BNK

相关问题