2017-10-05 62 views
2

我想發送諸如用戶名和密碼之類的參數。Android Json解析字符串無法轉換爲json對象錯誤

我得到一個像String這樣的錯誤,無法轉換爲jsonobject。

我不知道這是什麼happening.Anyone請幫助我,我的代碼是:

 JSONObject obj=new JSONObject(); 
      try{ 
      obj.put("username","test"); 
       obj.put("password","test"); 
      } catch (JSONException e) { 
      } 

     JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST, 
       urlJsonObj, obj, new Response.Listener<JSONObject>() { 

      @Override 
      public void onResponse(JSONObject response) { 
       try { 
       } catch (JSONException e) { 
       } 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
      } 

     }); 
     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(jsonObjReq,json_obj_req); 
    } 
+0

你在哪一行得到錯誤? –

回答

0

沒有什麼錯,你正在創建的JSONObject並把值的方式。確保收到的響應是Json,因爲您的onResponse方法接受JSONObject。您可能會收到String值作爲響應,無法將其轉換爲JSONObject。

0

它看起來像你的迴應實際上是一個字符串,而不是一個JSON對象即{"object":"value"}而是"object:value"。你需要通過任何Stetho,提琴手嗅出你的迴應或重演通過郵差(或小提琴手)您的要求

======================

這並不能回答你的問題,但這會幫助你極大地改善你的生活。

強烈建議使用Gson和Retrofit來進行HTTP請求並輕鬆解析Gson對象。

https://github.com/google/gson

http://square.github.io/retrofit/

+0

我用於volley for json解析是它的問題? – Nandhu

+0

Retrofit和Volley完成同樣的事情,但有很多情況下,改造可以更好地滿足您在易用性方面的需求,並且在很多情況下更快。 可能發生的情況是返回的字符串不是JSON對象 – ElliotM

+0

「強烈推薦使用」!!!由誰推薦? – Dawit