我得到以下错误:
java.lang.IllegalStateException:需要一个字符串,但在第1行第29列路径$.entree[0]处是BEGIN_OBJECT。photo
这对我来说是没有意义的,因为我的json响应应该构造成如下所示:
import com.google.gson.annotations.SerializedName;
public class Entree {
@SerializedName("id")
public int id;
@SerializedName("photo")
public Entree.Photo photo;
public class Photo {
@SerializedName("url")
public String url;
@SerializedName("web")
public Entree.Photo.Web web;
@SerializedName("mobile")
public Entree.Photo.Mobile mobile;
public class Web {
@SerializedName("url")
public String url;
}
public class Mobile {
@SerializedName("url")
public String url;
}
}
}
JSON数据:
"entrees": [
{
"id": 32,
"photo":
{
"url": "4c312e9aed37a59319096a03_1.jpg",
"web": {
"url": "web_4c312e9aed37a59319096a03_1.jpg"
},
"mobile": {
"url": "mobile_4c312e9aed37a59319096a03_1.jpg"
}
}
},
...
你看到照片在我的课上是一个对象而不是一个字符串了吗?那我做错了什么?
尝试用static
标记内部类
在Gson文档中,它说
Gson还可以反序列化静态嵌套类。然而,Gson不能自动反序列化纯内部类,因为它们的无参数构造函数还需要对包含对象的引用,而在反序列化时,该对象是不可用的。您可以通过将内部类设置为静态或为其提供自定义InstanceCreator来解决这个问题。
我在postman上传递了一个update user请求,并得到了一个成功的响应(参见图片),现在,当我尝试在应用程序中使用Reverfit 2执行同样的操作时,我得到的错误为。有趣的是,我以前遇到过这个错误,我知道如果我的模型不符合响应,通常会发生这种情况。但这一次我想我已经检查了所有的框,但我得到了错误。如果有人知道我错在哪里... 我在《邮差》中的回应: 我的POJO:
我看到这个问题很多次了,但还是不明白。看起来我在现场发送请求,但它的正文不正确。但为什么呢?可能我不清楚改造是如何工作的,但我不是只是收集请求的链接并等待服务器的答案吗?这是链接:这里 带有请求的接口 和带有基本URL的类 改装构建类 JSON是通过这个解析的 主要活动是: 日志: 那么,如果请求错误,我应该为正常工作更改什么?
我有一个API,为了获取数据,我必须发送一个JSON参数。这是必须在中发送才能获取数据的JSON。 它在postman中工作,但在Android中,我有以下错误: 我想这是我的模型中的一个问题,但我无法修复它。 我的型号: 还有两种型号用于排序和筛选。我使用改装 我使用构造函数设置SendParametersGetData(在本例中,仅设置了视图名和参数),并将其作为输入提供给getMembers
我使用Laravel构建了一个简单的API,它运行良好。我的Android应用程序应该使用这个API中的数据,但对于一些JSON响应,我得到了一个错误 应为BEGIN_对象,但在第1行第1列路径处为字符串 在得到这个错误之前,错误如下: 使用JsonReader。setLenient(true)在第1行第1列路径接受格式错误的JSON 然后我来解决它。 我在许多其他帖子中看到,这个问题是一个畸形的
这将创建异常 非常感谢你的帮助。