1.I один файл в формате JSON:
(1) .successful возвращение JSON данные:
{
"code": 100,
"result": {
"pic": "http%3A%2F%2Fres1.adyun.com%2Fres1%2Fupload %2F40543%2Fidea_201609%2F14736434292154.jpg",
"clickurl": "http%3A%2F%2Fs.adyun.com%2Fsdkclick%3Fa%3D3062120448_3895541760_4%26i %3D5575715%26c
%3D7DA0B90B6DF81BD015A97357FB7F%26d%3D924737536_557985792_4246247424_6040307314919997440%26e
%3Dd4ee13b64d2cd3f7_2%26g %3D0%26h%3D329d7b4280da7ffc%26s%3D29281%26k%3D2%26j%3D5%26l%3D0%26v%3D3%26r
%3D687474703A2F2F7777772E786C7A73736A2E636F6D2F",
"holycrap": "557985792_4246247424_6040307314919997440",
"telno": ""
}
}
(2) возвращение отказ JSON данные:
{
"code":-23,
"result":"no ad"
}
2.into список объектов.
BaseRet baseRet = new Gson().fromJson(content, BaseRet.class);
3.Хороший объект класса, который я использую.
BaseRet:
public class BaseRet {
public int code;//": 100
public AdData result;//<-
}
AdData:
public class AdData {
public String pic;
public String clickurl;
public String clicknotifyurl;
public String holycrap;
public String telno;
public String getClicknotifyurl() {
return clicknotifyurl;
}
public void setClicknotifyurl(String clicknotifyurl) {
this.clicknotifyurl = clicknotifyurl;
}
public String getClickurl() {
return clickurl;
}
public void setClickurl(String clickurl) {
this.clickurl = clickurl;
}
public String getHolycrap() {
return holycrap;
}
public void setHolycrap(String holycrap) {
this.holycrap = holycrap;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
public String getTelno() {
return telno;
}
public void setTelno(String telno) {
this.telno = telno;
}
}
4.Но он бросает меня с
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 24 path $.result
5.Any идеи, как я должен это исправить?
в 'BaseRet', класс' 'result' является AdData'. но ваши данные второго json имеют «результат»: «no ad», что означает «результат» - это строка. gson пытается десериализовать строку в объект AdData и не работает. – ymonad
И обходной путь, возможно, определяет 'result' как' JsonElement'. – ymonad