2016-10-17 14 views
1

私は何をすべき、私は改造1.8を使用しています、私は改修設定寛大エラー:1.8.0

retrofit.RetrofitError: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 7 path $

のようなエラーになっていると私は、このMalformedJsonException with Retrofit API?1の1件の回答を試してみましたか?

私のJavaコード:

RetroHelper

public static RestAdapter getAdapter(Context ctx, String serverUrl) { 
     mContext=ctx; 
     RestAdapter restAdapter = new RestAdapter.Builder() 
       .setEndpoint(StringConstants.BASE_CLASSES_URL+serverUrl) 
       .setLogLevel(RestAdapter.LogLevel.FULL).setLog(new RestAdapter.Log() { 
        @Override 
        public void log(String msg) { 
         Log.i("Retro Helper", msg); 
        } 
       }) 
       .build(); 

JSONレスポンス

{ 
    "status": "Success", 
    "data": null, 
    "message": "Successfully get the slot lists", 
    "statusCode": 200 
} 

他のコード

public ServiceOperations getBaseClassService(Context ctx, String url) { 
      return new RetroHelper().getAdapter(ctx, url).create(ServiceOperations.class); 
     } 



    @GET("/schduleLists") 
     void getDoctorSchedule(@Query("doctorid") int id, Callback<JsonObject> callback); 

mUtil.getBaseClassService(getActivity(), "").getDoctorSchedule(mUserId,new Callback<JsonObject>() { 
       @Override 
       public void success(JsonObject jsonObject, Response response) { 
        if (jsonObject.get(StringConstants.STATUS).getAsString().equalsIgnoreCase("Success")) {// this if condition is casued error! 
         mUtil.dismissDialog(); 
         JsonArray jsonArray =jsonObject.get("data").getAsJsonArray(); 

答えて

0

result1の末尾には、終了記号に続くデバッガに表示されない文字がいくつかあると思われます。 result1とresult2の長さはどのくらいですか?あなたが引用したresult2には169文字あることに注意しましょう。

GSONは、オブジェクトの末尾に余白がなく、空白が非常に狭く(JSON仕様のように) - 余白が\ t、\ n、\ r、およびスペースは空白としてカウントされます。特に、末尾のNUL(\ 0)文字は空白としてカウントされず、このエラーが発生することに注意してください。

あなたは簡単に終わりに余分な文字を引き起こしているかを把握し、それらを排除することができない場合は、別のオプションを厳密モードで解析するGSONを伝えることです:

遅れて申し訳ありません
Gson gson = new Gson(); 
JsonReader reader = new JsonReader(new StringReader(result1)); 
reader.setLenient(true); 
Userinfo userinfo1 = gson.fromJson(reader, Userinfo.class); 
+0

、PHPの応答jsonデータを持つ生データを持っていますが、次に良いAPIから明確な応答を得ましたので、私の問題は明らかでした。 – Lokesh

関連する問題