2017-02-03 28 views
0

我試圖檢索這個在我的班,但我得到一個錯誤預期的BEGIN_OBJECT,但STRING在第1行第1路徑$ 我從Web服務的響應是{「last_question」: 「0」, 「水平」: 「0」, 「錯誤」: 「0」} 謝謝如何檢索json對象使用改進2

的Json

{"last_question":"0","level":"0","error":"0"} 

Activtiy

//calling from MainActivity 
     private void get() 
      { 
       Gson gson = new GsonBuilder() 
         .setLenient() 
         .create(); 

       Retrofit retrofit = new Retrofit.Builder() 
         .baseUrl(BASE_URL) 
         .addConverterFactory(GsonConverterFactory.create(gson)) 
         .build(); 

       API mApi = retrofit.create(API.class); 

       Call<Example> call = mApi.getdata(); 
       call.enqueue(new Callback<Example>() 
       { 
        @Override 
        public void onResponse(Call<Example> call, Response<Example> response) 
        { 
         System.out.println(response.body().getError()); 

        } 

        @Override 
        public void onFailure(Call<Example> call, Throwable t) 
        { 

         System.out.println(t.getMessage()); 
        } 
       }); 


      } 

// POJO類

public class Example { 
    private String last_question; 
    private String level; 
    private String error; 
//all getter andd setter are is here 
} 
+0

**預期BEGIN_OBJECT,但是STRING **請檢查您的回覆。似乎是字符串,而你的代碼需要一個'JSONObject'。你的代碼看起來沒事 – Raghunandan

+0

我託管在同一JSON這裏https://api.myjson.com/bins/cw29l測試和同樣採用Android代碼工作,除了它的GET請求和標題內容類型接受申請/ JSON – Raghunandan

回答

0

更新: 您的服務器沒有響應您的預期響應。其實它的HTML碼被返回:

<html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("9cc75ba79032859c712d6ecb862cfde7");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://advancedcalc.byethost8.com/test.php?i=2";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html> 

舊(錯誤)答案:

你忘了Example類中@SerializedName(name)註釋添加到您的領域:

@SerializedName("last_question") 
private String last_question; 

@SerializedName("level") 
private String level; 

@SerializedName("error") 
private String error; 
+0

我有@dipdipdip – Nikul

+0

你不需要使用註釋時的名字是相同的,只有當你有@Nikul你需要檢查從服務器的響應使用不同的名稱 –

+0

同樣的錯誤。看起來你最終得到一個字符串,而你的代碼需要jsonobject。你的android代碼似乎很好 – Raghunandan