2016-12-01 133 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

相關問題