[英]Gson error expected begin_object but was string at line 1 column 1 path $
I hope you could give me a hand on a Gson issue I can't solve. 希望您能帮我解决我无法解决的Gson问题。 It is quiet common apparently since I found many topic on this subject, but didn't manage to use answers. 很显然,这很安静,因为我发现了许多与此主题相关的主题,但是没有设法使用答案。
I have this error : 我有这个错误:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBjECT but was STRING at line 1 column 1 path $ com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBjECT,但位于第1行第1列的路径$
Here is my Json : 这是我的杰森:
{"valeurs":[{"Ident":"1","Lien":"r8WzdMerigo","Categorie":"1"},{"Ident":"2","Lien":"neqgJGz08Fw","Categorie":"2"}],"success":1}
Then my POJO: 然后我的POJO:
public class gitmodel {
@SerializedName("Ident")
@Expose
private int Ident;
@SerializedName("Lien")
@Expose
private String Lien;
@SerializedName("Categorie")
@Expose
private int Categorie;
public int getIdent() {return Ident;}
public String getLien() {
return Lien;
}
public int getCategorie() {
return Categorie;
}
} }
And finally in the Main activity : 最后在Main活动中:
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(API)
.build();
gitapi git = restAdapter.create(gitapi.class);
git.getFeed("affichage_bd.php", new Callback<gitmodel>() {
@Override
public void success(gitmodel gitmodel, Response response) {
tv.setText("Numero categorie :" + gitmodel.getCategorie() + "\nLien :" + gitmodel.getLien() + "\nIdentification :" + gitmodel.getIdent());
}
@Override
public void failure(RetrofitError error) {
tv.setText(error.getMessage());
}
});
}
});
Could you please tell me what's going on? 你能告诉我发生了什么吗?
You are missing a level. 您缺少一个级别。 The POJO you set in Callback<> should be : 您在Callback <>中设置的POJO应该为:
public class MyModel
{
List<gitmodel> valeurs;
public List<gitmodel> getValeurs()
{
return valeurs;
}
}
Edit: 编辑:
You should save the MyModel class somewhere in you project, and then change your interface to: 您应该将MyModel类保存在项目中的某个位置,然后将接口更改为:
public interface gitapi {
@GET("/users/{user}")
public void getFeed(@Path("user") String user, Callback<MyModel> myModel);
}
So then in your MainActivity : 因此,在您的MainActivity中 :
git.getFeed("affichage_bd.php", new Callback<MyModel>() {
@Override
public void success(MyModel myModel, Response response) {
List<gitmodel> valeurs = myModel.getValeurs();
// here you can iterate through the elements on the list
}
@Override
public void failure(RetrofitError error) {
tv.setText(error.getMessage());
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.