我以这种方式得到了服务器的回复:
{
"ownerName": "theName",
"site": "theSite",
"group": "theGroup",
"honours": [
{
"id": 189,
"name": "Assistant Professor"
}, {
"id": 226,
"name": "of the Four Winds"
}, {
"id": 227,
"name": " Defender of a Shattered World"
}, {
"id": 228,
"name": "Dragonslayer %s"
}, {
"id": 229,
"name": " Blackwing's Bane"
}, {
"id": 278,
"name": "Firelord %s"
}, {
"id": 342,
"name": " Storm's End"
}, {
"id": 477,
"name": "Fabulous",
"selected": true
}]
}
我想访问该列表并设置TextView#setText
以在ownerName
列表中包含name
和honours
。在使用POJO模型循环和解析RecyclerView.Adapter#onBindVewHolder
响应后,我以这种方式使用json
。
@Override
public void onBindViewHolder(CharacterTitlesAdapter.CharacterTitlesViewHolder holder, int position) {
CharacterTitleModel item = characterTitleModels.get(position);
holder.itemView.setTag(item);
Log.d("Titles size: ", String.valueOf(item.getTitles().size()));
for(int i = 0; i < item.getTitles().size(); i++){
TitleModel lt = item.getTitles().get(i);
holder.titleName.setText(lt.getName().replace("%", item.getCharacterName() + "'"));
}
当我如上所述遍历列表时,我只获得列表中的最后一项。如果我使用int position
我得到列表中的第一项。
如何访问JSON响应列表中的 ALL 项目。
P.S。:我知道我主要只能解析honours
json数组,但我需要ownerName
。
感谢每一位帮助。
答案 0 :(得分:1)
如果您知道如何获得荣誉JSON数组,那么您也应该能够提取ownerName。
你想做类似下面的事情:
JSONObject root = new JSONObject(yourJSONString);
String ownerName = root.getString("ownerName");
JSONArray honoursArray = root.getJSONArray("honours");
然后从honoursArray中获取所需内容
答案 1 :(得分:0)
要访问ownerName
,请使用HashMap
,使用put
方法插入ownerName
,site
等的值。然后使用{{ 1}}到ArrayList
addAll
数组。在下面的示例中,honours
已经声明:
hashMap
然后在 ResponseModel responseModel = gson.fromJson(theJsonResponse,
ResponseModel.class);
hashMap.clear();
hashMap.put("response", responseModel);
中使用RecyclerView.onBindViewHolder
获取值:
hashMap.get(Object key)
我希望这有助于某人。