2017-04-23 62 views
0

我在解析下面的JSON结构时遇到了问题。基本上我必须读取值对象作为列表,但服务器返回为JsonObject并且值根据totalPageCount更改。有什么方法可以读取List?我应该使用反射?目前我正在使用Retrofit并返回模型类。如何在Retrofit中迭代键值对

任何帮助真的很感激。

谢谢

{ 
    "page" : 0, 
    "pageSize" : 10, 
    "totalPageCount" : 1, 
    "values" : { 
    "key1" : "value1", 
    "key2" : "value2", 
    "key3" : "value3", 
    "key4" : "value4", 

    } 
} 

模型类:

import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

public class Example { 

@SerializedName("page") 
@Expose 
private Integer page; 
@SerializedName("pageSize") 
@Expose 
private Integer pageSize; 
@SerializedName("totalPageCount") 
@Expose 
private Integer totalPageCount; 
@SerializedName("values") 
@Expose 
private Values values; 

public Integer getPage() { 
return page; 
} 

public void setPage(Integer page) { 
this.page = page; 
} 

public Integer getPageSize() { 
return pageSize; 
} 

public void setPageSize(Integer pageSize) { 
this.pageSize = pageSize; 
} 

public Integer getTotalPageCount() { 
return totalPageCount; 
} 

public void setTotalPageCount(Integer totalPageCount) { 
this.totalPageCount = totalPageCount; 
} 

public Values getValues() { 
return values; 
} 

public void setValues(Values values) { 
this.values = values; 
} 

} 
-----------------------------------com.example.Values.java----------------------------------- 

package com.example; 

import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

public class Values { 

@SerializedName("key1") 
@Expose 
private String key1; 
@SerializedName("key2") 
@Expose 
private String key2; 
@SerializedName("key3") 
@Expose 
private String key3; 
@SerializedName("key4") 
@Expose 
private String key4; 

public String getKey1() { 
return key1; 
} 

public void setKey1(String key1) { 
this.key1 = key1; 
} 

public String getKey2() { 
return key2; 
} 

public void setKey2(String key2) { 
this.key2 = key2; 
} 

public String getKey3() { 
return key3; 
} 

public void setKey3(String key3) { 
this.key3 = key3; 
} 

public String getKey4() { 
return key4; 
} 

public void setKey4(String key4) { 
this.key4 = key4; 
} 

} 
+2

试试这个私人地图值; –

+0

非常感谢!有效 !你可以在答案部分添加它会接受它。 –

回答

1

这将工作

private Map<String,String> values;