Java jsonObject中的列表

Java jsonObject中的列表,java,android,arrays,android-recyclerview,Java,Android,Arrays,Android Recyclerview,我通过以下方式从服务器获得响应: { "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 Sh

我通过以下方式从服务器获得响应:

{
"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
,以便在
荣誉
列表中同时包含
所有者姓名
姓名
。在使用POJO模型循环和解析
json
响应之后,我以这种方式使用
RecyclerView.Adapter#onbindveholder

    @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() + "'"));

    }
@覆盖
BindViewHolder上的公共无效(CharacterTitleAdapter.CharacterTitleViewHolder,int位置){
CharacterTitleModel项=characterTitleModels.get(位置);
holder.itemView.setTag(项目);
Log.d(“标题大小:”,String.valueOf(item.getTitles().size());
对于(int i=0;i
当我像上面那样在列表中循环时,我只得到列表中的最后一项。如果我使用
int位置
,我得到列表中的第一项

如何访问JSON响应列表中的所有项

注:我知道我基本上只能解析
honors
json数组,但我需要
ownerName


非常感谢您的帮助。

如果您知道如何获取Honors JSON数组,那么您也应该能够提取ownerName

您将需要执行以下类似操作:

JSONObject root = new JSONObject(yourJSONString);
String ownerName = root.getString("ownerName");
JSONArray honoursArray = root.getJSONArray("honours");

然后从Honorsarray中获取所需内容,访问
所有者名称
,使用
哈希映射
,使用
put
方法插入
所有者名称
站点
等的值。然后使用
数组列表
添加所有
荣誉
数组。在下面的示例中,
哈希已声明映射

    ResponseModel responseModel = gson.fromJson(theJsonResponse,
            ResponseModel.class);

    hashMap.clear();
    hashMap.put("response", responseModel); 
然后在
RecyclerView.onBindViewHolder
中使用
hashMap.get(对象键)
获取值:

final ResponseModel item=hashMap.get(“响应”);


我希望这对某些人有所帮助。

如果我只解析Honors数组,我将无法访问RecyclerView#onBindViewHolder中的所有者名称,因为我将使用HonorsModel,因此我希望在
onBindViewHolder
中使用语法或方法,以使我能够访问
所有者名称
Honors
数组。在哪里您最初解析JSON了吗?您的模型类是什么样子的?这里没有足够的信息来进一步帮助您。为什么不发布完整的适配器类和模型类呢。