大家好,对不起我的英语。
嗨,我是 Retrofit 库的新手,我在解析一些 json 时遇到问题。我在 Stackoverflow 上查看了其他一些解决方案,但对我的问题不太满意。我试图让一个简单的网络服务工作。任何建议将不胜感激。我的 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);
}
});
卖家.java
public class Seller {
public int user;
public String sup_id;
public String seller_vfd;
public String sup_lmd;
}
ApiCallRestrofit.java 接口(interface)
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 $
我知道错误是说数据是一个对象,它应该以数组开头,但我无法解决..谢谢
最佳答案
您能否发布 Retrofit 在尝试解析之前收到的未修改响应?听起来您可能包含了"
在 JSON 对象的开头。
关于android - 预期对象,但在改造 1.9 中找到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37967910/