问题描述
我有JSON
这样的人:
我认为它是对象中的HashMap<>
。
我正在使用RxJava
来获取API service
。
服务器响应是这样的:
注意: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。此时,您可以通过强制转换从哈希映射中获取值。