【发布时间】:2016-09-06 07:27:09
【问题描述】:
这是我的 JSON 响应:
{
"id": 2,
"name": "Test",
"content": "{\"type\": \"status\", \"text\": \"Lorem ipsum dummy text.\", \"id\": 1}"
}
这些是模型结构:
class TestModel {
public int id;
public String name;
public Content content;
}
class Content {
public int id;
public String status;
public String text;
}
我想使用 Retrofit 和 GsonConvertor 将内容的值直接解析到我的内容模型对象中。但目前,我将其解析为字符串值,而不是使用 Gson.fromJson() 转换为我的内容模型对象。有什么解决方案可以达到我的预期效果吗?
当我使用 GsonConverterFactory 解析它时,Retrofit 在 onFailure 方法中提供回调,但有此异常:
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 4 column 19 path $.data[0].content
【问题讨论】:
-
在retrofit中直接传模型类
-
@ColdFire:我正在这样做,但我想将字符串值直接转换为我的内容模型。作为回应,我在内容键上得到了字符串值。
-
为什么您的响应中的“内容”值是一个字符串?这不遵循 JSON 标准,这就是为什么将
GsonConverterFactory添加到您的Retrofit实例不会给您想要的结果。正确的 JSON 格式将“内容”作为 JSON 对象返回,而不是字符串。您对 JSON 响应有任何控制权吗? -
@MA13:和布莱恩一起去。
标签: android json gson retrofit2