使用GSON和翻新从服务器获取Observable <HashMap>

问题描述

我有JSON这样的人:

enter image description here

我认为它是对象中的HashMap<>

我正在使用RxJava获取API service

服务器响应是这样的:

enter image description here

注意:SIGNAL_URL是动态的,作为KEY!

我尝试了这个:

 @GET("apilink")
    Observable<HashMap<String,String>> getLinks();

我也有一个实体模型:

public class UsefulLinksEntity implements BaseEntity {

    @Serializedname("additionalProp1")
    private String additionalProp1;

    @Serializedname("additionalProp3")
    private String additionalProp3;

    @Serializedname("additionalProp2")
    private String additionalProp2;

和ContentModel:

public class SajamContentEntity implements BaseEntity {

@Serializedname("usefulLinks")
private UsefulLinksEntity usefulLinksEntity;

但是我不知道如何使用这种JSON。 谢谢。

解决方法

请求应该是

@GET("apilink")
    Observable<ApiLink> getLinks();

ApiLink模型:

public class ApiLink implements BaseEntity {

   private int code;

   private String message;

   private Content content;
}

Content模型:

public class Content implements BaseEntity {  
   private SajamContentEntity content;
}

如下修改您的SajamContentEntity模型

public class SajamContentEntity implements BaseEntity {

     @SerializedName("usefulLinks")
     private HashMap<String,String> usefulLinksEntity;
}
,

在遍历该键并检查有用链接键并获取其中的所有动态键和值之后,您始终可以将其作为字符串的哈希映射作为键,将对象作为值作为哈希映射。

@GET("apilink")
Observable<HashMap<String,Object>> getLinks();

当您遍历getLinks哈希表时,检查密钥usefulLinks,该密钥将再次为HashMap<String,String>的a。此时,您可以通过强制转换从哈希映射中获取值。