这是我的JSON响应:Android - Retrofit Gson-如何解析JSON字符串以JSON响应中的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;
}
我想直接解析内容的价值将使用改装和GsonConvertor我的内容模型对象。但目前,我将它解析为字符串值,而不是使用Gson.fromJson()转换为我的内容模型对象。有没有解决方案来获得我的预期结果?
当我用用GsonConverterFactory解析它,改造给出onFailure处方法回调与此异常:
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 4 column 19 path $.data[0].content
直接通过模型类的改装 –
@ColdFire:我这样做,但我想字符串值直接转换到我的内容模型。作为回应,我在内容密钥上获得了字符串值。 – MA13
为什么响应中的“content”值是一个字符串?这不符合JSON标准,这就是为什么在你的'Retrofit'实例中添加一个'GsonConverterFactory'并不能给你想要的结果。正确的JSON格式会将“内容”作为JSON对象返回,而不是字符串。你有任何控制JSON响应? – Bryan