私は自分のJSONを解析しようとしていますが、取得JSONSyntaxException
すると、JSONは次のようになります。
{
"type":"success",
"value":[
{
"id":1,
"title":"Title - 1",
"name":{
"first":"First - 1",
"last":"Last - 1"
},
"hobbies":[
"Writing Code - 1",
"Listening Music - 1"
]
},
.....
]
}
ログによると:
E/app.retrofit_chucknorries.MainActivity$2: ERROR: com.google.gson.JsonSyntaxException:
java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT
at line 7 column 12 path $.value[0].name
01-21 12:41:52.156 28936-28936/app.retrofit_chucknorries
W/System.err: retrofit.RetrofitError: com.google.gson.JsonSyntaxException:
java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT
at line 7 column 12 path $.value[0].name
私が行っているところではmistake ?
、requirement and classes
他のコードとほぼ同じように、いくつかの小さな変更を加えました。Value.java:
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.List;
public class Value {
@SerializedName("id")
@Expose
private Integer id;
@SerializedName("title")
@Expose
private String title;
@SerializedName("hobbies")
@Expose
private List<String> hobbies = new ArrayList<String>();
@SerializedName("name")
@Expose
private List<Name> name = new ArrayList<Name>();
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public List<Name> getName() {
return name;
}
public void setName(List<Name> name) {
this.name = name;
}
public List<String> getHobbies() {
return hobbies;
}
public void setHobbies(List<String> hobbies) {
this.hobbies = hobbies;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
Master.javaクラスでは、名前は配列ではありません。
private List<Name> name = new ArrayList<Name>();
代わりにこれに変更して、次のことを試してください。
private Name name;
実際には、例外のログを見ると、これを知ることができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加