从 retrofit2 响应中获取 JSONObject
Posted
技术标签:
【中文标题】从 retrofit2 响应中获取 JSONObject【英文标题】:Get JSONObject from retrofit2 response 【发布时间】:2017-10-13 23:00:48 【问题描述】:如何从响应对象中获取retrofit2未知的JSON对象,如这个请求(使用OkHttp3):
Observable<Response<MyResponseObject>> apiCall(@Body body);
MyResponseObject 如下所示:
public class MyResponseObject
@SerializedName("title")
public String title;
@SerializedName("info")
public JSONObject info;
@SerializedName("question_id")
public String questionId;
我想得到
JSON 对象信息
像一个普通的对象。
【问题讨论】:
【参考方案1】:您需要创建另一个类(信息):
public static class Info
@SerializedName("description")
public String mDescription;
@SerializedName("preview_image")
public String mPreviewImage;
在 MyResponseObject 中:
@SerializedName("info")
public Info info;
【讨论】:
但我不知道 JSONObject 长什么样子【参考方案2】:我不知道JSONObject
,但你可以试试Observable<Response<JsonElement>>
,它有类似的API。
我认为应该将您的 Json 反序列化为 JsonElement
对象
如果您只需要json字符串,也可以调用Response.body()
或Response.errorBody()
。
【讨论】:
谢谢罗伯特! @RobertEstivill以上是关于从 retrofit2 响应中获取 JSONObject的主要内容,如果未能解决你的问题,请参考以下文章
Retrofit2 POST 方法获取代码 400 但适用于 Restlet 客户端