当前位置: 首页 > 知识库问答 >
问题:

改装-如何将响应转换为HashMap?

能逸清
2023-03-14

我有一个关于使用Square改造的Android开发的问题。假设我有一个Response对象,它实际上是一个HashMap

有没有办法从这个Retromet对象中获取一个HashMap对象?

谢谢


共有2个答案

冯枫
2023-03-14

@杰克·沃顿(Jake Wharton)表示:Gson将在没有任何配置的情况下反序列化地图。所以你真的不必做这些。

只需指定一个映射作为改装返回类型或回调类型。

石正卿
2023-03-14

Response对象包含有关从服务器返回的响应的各种信息。

如果您的意思是响应主体是HashMap,那么您可以在调用success()时解析主体,或者在构建重新适配器时注册类型适配器,并编写反序列化程序来解析和填充HashMap

 private RestAdapter getRestAdapter(){
        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.registerTypeAdapter(new TypeToken<HashMap<String, String>>(){}.getType(), new MyHashMapDeserializer());
        RestAdapter.Builder builder = new RestAdapter.Builder();
        builder.setClient(new OkClient());
        builder.setLogLevel(RestAdapter.LogLevel.FULL);
        builder.setExecutors(Executors.newCachedThreadPool(), new MainThreadExecutor());
        builder.setConverter(new GsonConverter(gsonBuilder.create()));
        builder.setEndpoint(API_END_POINT_URL);
        return builder.build();
    }

然后创建将实现JsonDeserializer的新类(或内部类)

确保你根据自己的需要调整K,V类型。

 类似资料:
  • 我可以使用现在已弃用的方法将WebClient响应转换为响应实体。 请建议实现相同结果的其他方法。下面是我的代码。

  • 问题内容: 我无法将SOAP响应转换为php中的Array。 这是代码 这是SOAP响应。 我使用以下方法将其转换为数组,但输出为空。 请给我建议。 问题答案: 终于我找到了解决方案 我们可以通过以下方式从SOAP获得响应主体 范例1: 示例2:

  • 我通过扩展改型回调生成了类。我想将响应解析为字符串。在我的例子中,每个响应都得到这种类型的JSON对象。在成功回应的情况下: 万一发生故障响应 如何将响应体转换为JsonObject,以便检查字段“success”:并在成功时导航各自方法--onResponseSuccess(Call Call,response response);在失败时导航onResponseFailure(Call Cal

  • 使用此JSON,自动JSON到POJO严重失败。 请注意,不同请求的项目数量不同。在这里,我将包含两项JSON响应。 这个JSON对象的POJO会是什么样子?

  • 我需要将其转换为以下格式: 类型的数量可以改变(例如,可以只有A和B)。有人能帮我吗?我使用这个组件在网站https://js.devexpress.com/demos/widgetsgallery/demo/datagrid/simplearray/angular/light/上显示数据

  • 我有一个带有POST REST API的SpringBoot2.2 webservice。我正在使用Okhttp客户机向第三方服务发出请求。我希望将第三方服务的确切响应返回给我的WebService的调用者。所有okhttp食谱都参考: 我尝试在api中返回okhttp响应,但我只返回调用方示例: 有人知道如何将Okhttp响应对象转换为Spring ResponseEntity对象以便返回htt