Retrofit-2.0 - 解析在 xml 中包含 json 的响应

Posted

技术标签:

【中文标题】Retrofit-2.0 - 解析在 xml 中包含 json 的响应【英文标题】:Retrofit-2.0 - Parse response having json within xml 【发布时间】:2016-05-28 09:07:47 【问题描述】:

我正在使用 Retrofit 2.0,我想解析自定义响应。 POST 请求包含 json 格式。而响应是 xml 和 json 的组合。 示例请求:

"loginid":"10051"

示例响应:

<string xmlns="http://www.example.com/">"user":"user1", "class":"1"</string>

所以, 我想从响应中获取 json 部分 "user":"user1", "class":"1"

我尝试编写自定义转换器。但由于我是 Retrofit 2.0 的新手,无法编写。

提前致谢

【问题讨论】:

【参考方案1】:

尝试将其转换为JsonElement 对象,但之后不要将其转换为JsonObjectJsonArray,因为您肯定会看到异常。之后调用 .toString 方法并解析任何你想要的响应。

一些接收RequestBody作为响应的接口:

@POST("/exampleRout")
    Call<JsonElement> foo(@Body RequestBody requestBody);

回复:

 public void onResponse(Call<JsonElement> call, Response<JsonElement> response) 
       JsonElement jsonElement = response.body();
       String yourResponseString = jsonElement.toString();
       //parse it with regEx or XML parser and etc

【讨论】:

以上是关于Retrofit-2.0 - 解析在 xml 中包含 json 的响应的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Retrofit 2.0 android 中获取 json 字符串作为响应

Retrofit 2.0 使用总结

Retrofit 2.0使用

如何使用拦截器在 Retrofit 2.0 中添加标头?

使用 Retrofit 2.0 的练习

Retrofit 2.0 使用详细教程