Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 应为BEGIN_对象,但第1行为字符串-改装2_Android_Json_Retrofit2 - Fatal编程技术网

Android 应为BEGIN_对象,但第1行为字符串-改装2

Android 应为BEGIN_对象,但第1行为字符串-改装2,android,json,retrofit2,Android,Json,Retrofit2,我试图使用改型获取和发布数据,但它抛出异常Fsaailurecom.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期的BEGIN_对象,但在第1行第1列路径$ 我尝试了StackOverflow社区建议的所有可能的解决方案,但问题仍然存在:( 有什么帮助吗 PS:在brwoser和Localhost中,我可以获得正确的Json响应。在postman中,它返回此站点需要Javascript才能工作,请在浏览器中启用

我试图使用改型获取和发布数据,但它抛出异常Fsaailurecom.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期的BEGIN_对象,但在第1行第1列路径$ 我尝试了StackOverflow社区建议的所有可能的解决方案,但问题仍然存在:( 有什么帮助吗

PS:在brwoser和Localhost中,我可以获得正确的Json响应。在postman中,它返回此站点需要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);

            }
        });


    }
UserResponse.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;
    }

}
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;
    }
}

可能是错误的,但JSON似乎返回一个包含用户列表而不是结果列表的结果对象。因此,您应该有一个带有列表属性的结果pojo,然后您的用户对象,我认为,应该有三个字符串:id、用户名和用户密码。这个错误几乎总是(如果不总是的话)表示POJO/数据模型的结构与JSON的结构不匹配。

服务器只返回一个字符串,而不是一个对象。请尝试在Fiddler中查看答案,或者在Postman中使用相同的请求数据创建一个请求以查看答案

如我所见,在
result
中,您有一个对象列表,对象编码在
User
中,返回您的
UserModal.java
。因此,您需要在
result
UserModal.java
之间创建一个中介对象。类似于:

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

    // getter, setter, etc
}

如果您不想这样做,请检查您的云服务器实现。

您是否尝试将列表而不是列表输入到UserResponse中?@oskarko是的,但不可能更改您的副本在浏览器中正确的人我可以获得准确的JSon结果,但如果PostMan返回错误,例如此站点需要Javascript才能工作,请启用Javasc在您的浏览器中使用script或使用支持Javascript的浏览器做什么…?Hey@Florescu这里是在浏览器中测试的链接,Postman[试试这个]()它在本地托管中运行良好。当我移动到clold时,问题就出现了。你在浏览器和邮递员中测试了链接吗?你得到了相同的结果吗?是的,与你在问题中发布的结果相同。
{"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"}}]}
public IntermediarUser {
    @SerializedName("User")
    public UserModal user;

    // getter, setter, etc
}