2017-03-27 64 views
0

我試圖獲得並使用改造後的數據,但它拋出異常Fsaailurecom.google.gson.JsonSyntaxException:java.lang.IllegalStateException:預期BEGIN_OBJECT但在行字符串1列1路$ 我試圖通過StackOverflow的社區提出的所有可能的解決方案,但仍是問題退出:( 任何幫助.. !!預計BEGIN_OBJECT但STRING在線路1 - 2改造

PS:在brwoser和本地主機我可以能夠得到正確的JSON響應爲API callhttp://onesignaldemo.rf.gd/test/get_user.php。在郵遞員返回該站點要求Javascript才能正常運行,請在您的瀏覽器上啓用Javascript或者使用瀏覽器的JavaScript支持

API調用

private void getUsersFromDB() { 
     userservice= ApiUtils.getUserservice(); 
     userservice.getUsers().enqueue(new Callback<UserResponse>() { 
      @Override 
      public void onResponse(Call<UserResponse> call, Response<UserResponse> response) { 
       Log.d("RESULT", "onResponse: --------------------------------SUCCESS"); 
       List<Result> userresponses = response.body().getResult(); 
       Log.d("ANS", "Number of movies received: " + userresponses.size()); 

      } 

      @Override 
      public void onFailure(Call<UserResponse> call, Throwable t) { 
       Log.d("RESULT", "onResponse: --------------------------------Failure" +t); 

      } 
     }); 


    } 

UserModal.java

public class UserModel { 

    @SerializedName("id") 
    @Expose 
    private String id; 
    @SerializedName("user_name") 
    @Expose 
    private String userName; 
    @SerializedName("user_password") 
    @Expose 
    private String userPassword; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getUserName() { 
     return userName; 
    } 

    public void setUserName(String userName) { 
     this.userName = userName; 
    } 

    public String getUserPassword() { 
     return userPassword; 
    } 

    public void setUserPassword(String userPassword) { 
     this.userPassword = userPassword; 
    } 

} 

UserResponse.java

public class UserResponse { 

    @SerializedName("result") 
    @Expose 
    private List<Result> result = null; 
    @SerializedName("error_code") 
    @Expose 
    private Integer errorCode; 

    public List<Result> getResult() { 
     return result; 
    } 

    public void setResult(List<Result> result) { 
     this.result = result; 
    } 

    public Integer getErrorCode() { 
     return errorCode; 
    } 

    public void setErrorCode(Integer errorCode) { 
     this.errorCode = errorCode; 
    } 
} 

接口

public interface UserService { 
    @GET("/get_user.php") 
    Call<UserResponse> getUsers(); 

    @FormUrlEncoded 
    @POST("/insert_user.php") 
    Call<DBResponse> insertUsers(@Field("user_name") String username, 
           @Field("user_password") String userpassword); 
} 

這就是我的Json

{"result":[{"Users":{"id":"1","user_name":"raj","user_password":"rajesh123"}},{"Users":{"id":"2","user_name":"raj","user_password":"rajesh123"}},{"Users":{"id":"3","user_name":"raj","user_password":"rajesh123"}},{"Users":{"id":"4","user_name":"raj","user_password":"rajesh123"}},{"Users":{"id":"5","user_name":"raj","user_password":"rajesh123"}},{"Users":{"id":"6","user_name":"raj","user_password":"rajesh123"}},{"Users":{"id":"7","user_name":"raj","user_password":"rajesh123"}},{"Users":{"id":"8","user_name":"raj","user_password":"rajesh123"}},{"Users":{"id":"9","user_name":"raj","user_password":"rajesh123"}},{"Users":{"id":"10","user_name":"raj","user_password":"rajesh123"}},{"Users":{"id":"11","user_name":"raj","user_password":"rajesh123"}},{"Users":{"id":"12","user_name":"raj","user_password":"rajesh123"}}]} 
+0

您是否嘗試將列表而不是列表放入UserResponse? – oskarko

+0

@oskarko是的,但沒有變化 –

回答

0

可能是錯誤的,但它看起來像你的JSON函數返回一個擁有用戶的列表,而不是結果的列表一個結果對象?所以你應該有一個帶有List屬性的Result pojo,我認爲你的用戶對象應該有三個字符串:id,user_name和user_password。這個錯誤幾乎總是(如果不是總是)指的是你的pojos/data模型的結構和JSON的結構不匹配。

1

服務器只返回一個字符串,而不是一個對象。試着看看Fiddler的答案是什麼,或者只需在Postman中用相同的請求數據創建一個請求來查看答案。

正如我所見,在result你有一個對象列表,在User編碼的對象,返回您的UserModal.java。因此,您需要在resultUserModal.java之間創建一箇中介對象。例如:

public IntermediarUser { 
    @SerializedName("User") 
    public UserModal user; 

    // getter, setter, etc 
} 

如果您不想這樣做,請檢查您的雲服務器實施。

+0

你是正確的人在瀏覽器中,我可以得到一個精確的JSon結果但在PostMan的情況下,它返回錯誤Like **此網站需要使用Javascript才能正常工作,請在您的瀏覽器支持Javascript或使用瀏覽器與JavaScript支持**做什麼..? –

+0

Hey @Florescu這裏是鏈接在瀏覽器和郵差測試[試試這個](http://onesignaldemo.rf.gd/test/get_user。php) –

+0

它工作正常在本地託管的問題出現在我搬到Clould時 –

相關問題