大家好抱歉我的英文。
嗨,我是Retrofit库的新手,我在解析一些json时遇到问题。我已经在Stackoverflow上看了一些其他的解决方案,但我的问题没有太多运气。我试图让一个简单的Web服务工作。任何建议将不胜感激。我的json文件。{"user":"1","sup_id":"105","seller_vfd":"1","sup_lmd":"1"}
请求方法
String email=editEmail.getText().toString();
String password=editPassword.getText().toString();
progressGenerator.start(btnSignIn);
Map<String, String> params = new HashMap<String, String>();
params.put("user", "seller");
params.put("sup_email", email);
params.put("sup_pwd", password);
params.put("sup_seller_token", "www001");
RestAdapter adapter=new RestAdapter.Builder().setEndpoint(baseUrl).build();
ApiCallRetrofit apiCall=adapter.create(ApiCallRetrofit.class);
apiCall.signUp(params,new Callback<Seller>() {
@Override
public void success(Seller seller, Response response) {
System.out.println("inside success"+seller.user);
}
@Override
public void failure(RetrofitError error) {
System.out.println("inside success"+error);
}
});
Seller.java
public class Seller {
public int user;
public String sup_id;
public String seller_vfd;
public String sup_lmd;
}
ApiCallRestrofit.java接口
public interface ApiCallRetrofit {
@GET("/signin.php?")
void signUp(@QueryMap Map<String, String> param, Callback<Seller> cb);
@GET("/forgot_password.php?")
void forgotPassword(@QueryMap Map<String, String> param, Callback<String> cb);
@GET("/forgot_token.php?")
void forgotToken(@QueryMap Map<String, String> param, Callback<String> cb);
}
我得到的错误是
retrofit.RetrofitError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
我理解错误是说数据是一个对象,它应该从一个数组开始,但我不能解决它..谢谢
答案 0 :(得分:0)
您是否可以在尝试解析之前发布Retrofit收到的未经修改的响应?您可能在JSON对象的开头包含了"
。
答案 1 :(得分:0)
我在我的代码中找到了解决方案,实际问题在这里@GET("/signin.php?")
void signUp(@QueryMap Map<String, String> param, Callback<Seller> cb);
我正在给#34;?&#34;在signin.php之后,但在删除此标志后,它可以正常工作