2013-02-18 170 views
0

我是android的noob,我試圖從這個鏈接解析JSON:「http://services.packetizer.com/spotprices/?f=json」。但是,當我發送我的請求來解析它時,我收到一個錯誤,說...「解析數據時出錯org.json.JSONException:類型java.lang.String的值xml無法轉換爲JSONObject」。至少可以這麼說,因爲鏈接顯然是JSON。任何解決這個問題的幫助都非常感謝爲什麼JSON請求返回爲XML?

我的代碼:

JSONObject json = JSONfunctions.getJSONfromURL("http://services.packetizer.com/spotprices/?f=json");      
         if(json==null){ 
          //Do Nothing 
         }else{ 
          String usdgold = json.getString("gold");    
          livespotgold = Double.parseDouble(usdgold); 
          storedspotgold=livespotgold; 
          Log.e("Spot Gold Packetizer", String.valueOf(livespotgold)); 

          String usdsilver = json.getString("silver");    
          livespotsilver = Double.parseDouble(usdsilver); 
          storedspotsilver=livespotsilver; 
          Log.e("Spot Silver Packetizer", String.valueOf(livespotsilver)); 
          haveSpot = true; 
         } 
+0

您是否知道僅解析JSON節的方法? – 2013-02-18 21:36:20

+0

對不起,我錯了,它看起來像只是返回一個JSON字符串我的壞 – dm03514 2013-02-18 21:37:35

回答

2

我假設你正在使用從hereJSONfunctions類或它的修改版本(如您收到一個JSONObject而不是JSONArray)。

請注意,該代碼發送HTTP POST。當您發送POST時,此端點正在返回XML。您需要更改代碼以發送HTTP GET:

HttpClient httpclient = new DefaultHttpClient(); 
HttpGet httpget = new HttpGet(url); 
HttpResponse response = httpclient.execute(httpget); 
+0

謝謝。這讓我對過去幾個小時感到困惑 – 2013-02-18 23:13:43

相關問題