Java RecyclerView没有显示任何内容

Java RecyclerView没有显示任何内容,java,android,json,Java,Android,Json,我想用RecyclerView显示我的json响应,但它什么也没显示! 这是我的json: [ { "key": "test", "vals": [ { "Id": 0, "Group": "test", "Type": 0, "Name": "ram", "Value": "8", "Sort": 2 }, { "Id": 0,

我想用
RecyclerView
显示我的
json
响应,但它什么也没显示! 这是我的
json

[
  {
    "key": "test",
    "vals": [
      {
        "Id": 0,
        "Group": "test",
        "Type": 0,
        "Name": "ram",
        "Value": "8",
        "Sort": 2
      },
      {
        "Id": 0,
        "Group": "test",
        "Type": 0,
        "Name": "cpu",
        "Value": "2.4",
        "Sort": 1
      }
    ]
  },
  {
    "key": "mobile",
    "vals": [
      {
        "Id": 0,
        "Group": "mob",
        "Type": 0,
        "Name": "camera",
        "Value": "8",
        "Sort": 5
      },
      {
        "Id": 0,
        "Group": "mob",
        "Type": 0,
        "Name": "cpu",
        "Value": "4",
        "Sort": 0
      },
      {
        "Id": 0,
        "Group": "mob",
        "Type": 0,
        "Name": "Ram",
        "Value": "4",
        "Sort": 0
      }
    ]
这是我的
Java
代码:

JSONObject jsonObject = new JSONObject(s);
JSONArray array = jsonObject.getJSONArray("key");

for(int i=0;i<array.length();i++) {
JSONObject o = array.getJSONObject(i);
ListItem_spec item = new ListItem_spec(o.getString("id"),o.getString("group"),o.getString("type"),o.getString("name"),o.getString("value"),o.getString("sort"),o.getString("key"));
listItems.add(item);
}
adapter = new MyAdapter_spec(listItems,getContext());
recyclerView.setAdapter(adapter);
JSONObject JSONObject=新的JSONObject;
JSONArray数组=jsonObject.getJSONArray(“key”);

对于(int i=0;i是否已将布局管理器附加到回收器视图?

是否已将布局管理器附加到回收器视图?

您正在尝试分析此类结构:

{
  "key": [
    {
    "id": 0,
    "group": "test",
    "type": 0,
    "name": "ram",
    "value": "8",
    "sort": 2,
    "key": "someKey"
  },
  ...
  ]
}
但是您有一个auther
json
结构。请尝试以下代码:

JSONArray array = new JSONArray(s);

for(int i=0; i < array.length(); i++) {
  JSONObject valsObj = array.getJSONObject(i);
  JSONArray valsArray = valsObj.getJSONArray("vals");

  String key = valsObj.getString("Key");

  for(int j=0; j < valsArray.length; j++) {
    JSONObject o = valsArray.getJSONObject(j);
    ListItem_spec item = new ListItem_spec(o.getString("Id"), o.getString("Group"), o.getString("Type"), o.getString("Name"), o.getString("Value"), o.getString("Sort"), key);
    listItems.add(item);
   }
}

adapter = new MyAdapter_spec(listItems, getContext());
recyclerView.setAdapter(adapter);
JSONArray数组=新的JSONArray;
对于(int i=0;i
您正在尝试解析这样的结构:

{
  "key": [
    {
    "id": 0,
    "group": "test",
    "type": 0,
    "name": "ram",
    "value": "8",
    "sort": 2,
    "key": "someKey"
  },
  ...
  ]
}
但是您有一个auther
json
结构。请尝试以下代码:

JSONArray array = new JSONArray(s);

for(int i=0; i < array.length(); i++) {
  JSONObject valsObj = array.getJSONObject(i);
  JSONArray valsArray = valsObj.getJSONArray("vals");

  String key = valsObj.getString("Key");

  for(int j=0; j < valsArray.length; j++) {
    JSONObject o = valsArray.getJSONObject(j);
    ListItem_spec item = new ListItem_spec(o.getString("Id"), o.getString("Group"), o.getString("Type"), o.getString("Name"), o.getString("Value"), o.getString("Sort"), key);
    listItems.add(item);
   }
}

adapter = new MyAdapter_spec(listItems, getContext());
recyclerView.setAdapter(adapter);
JSONArray数组=新的JSONArray;
对于(int i=0;i
如果您想使用Gson..您可以这样实现

创建模型

public class ListItem_spec{
    private List<Vals> vals;
    private String key;

    public List<Vals> getVals (){
        return vals;
    }

    public String getKey (){
        return key;
    }
}


public class Vals
{
    private String Name;
    private String Sort;
    private String Value;
    private String Type;
    private String Id;
    private String Group;
    public String getName (){
        return Name;
    }

    public String getSort (){
        return Sort;
    }

    public String getValue (){
        return Value;
    }

    public String getType (){
        return Type;
    }

    public String getId (){
        return Id;
    }

    public String getGroup (){
        return Group;
    }
}
公共类列表项\u规范{
私人名单;
私钥;
公共列表getVals(){
返回VAL;
}
公共字符串getKey(){
返回键;
}
}
公务舱
{
私有字符串名称;
私有字符串排序;
私有字符串值;
私有字符串类型;
私有字符串Id;
私有字符串组;
公共字符串getName(){
返回名称;
}
公共字符串getSort(){
返回排序;
}
公共字符串getValue(){
返回值;
}
公共字符串getType(){
返回类型;
}
公共字符串getId(){
返回Id;
}
公共字符串getGroup(){
返回组;
}
}
然后使用Gson()

ListlistItems=new Gson().fromJson(您的_JSON,new TypeToken(){}.getType());
adapter=新的MyAdapter_规范(listItems,getContext());
recyclerView.setAdapter(适配器);
//别忘了添加notifyDataSetChanged();
adapter.notifyDataSetChanged();

如果您想使用Gson..您可以这样实现

创建模型

public class ListItem_spec{
    private List<Vals> vals;
    private String key;

    public List<Vals> getVals (){
        return vals;
    }

    public String getKey (){
        return key;
    }
}


public class Vals
{
    private String Name;
    private String Sort;
    private String Value;
    private String Type;
    private String Id;
    private String Group;
    public String getName (){
        return Name;
    }

    public String getSort (){
        return Sort;
    }

    public String getValue (){
        return Value;
    }

    public String getType (){
        return Type;
    }

    public String getId (){
        return Id;
    }

    public String getGroup (){
        return Group;
    }
}
公共类列表项\u规范{
私人名单;
私钥;
公共列表getVals(){
返回VAL;
}
公共字符串getKey(){
返回键;
}
}
公务舱
{
私有字符串名称;
私有字符串排序;
私有字符串值;
私有字符串类型;
私有字符串Id;
私有字符串组;
公共字符串getName(){
返回名称;
}
公共字符串getSort(){
返回排序;
}
公共字符串getValue(){
返回值;
}
公共字符串getType(){
返回类型;
}
公共字符串getId(){
返回Id;
}
公共字符串getGroup(){
返回组;
}
}
然后使用Gson()

ListlistItems=new Gson().fromJson(您的_JSON,new TypeToken(){}.getType());
adapter=新的MyAdapter_规范(listItems,getContext());
recyclerView.setAdapter(适配器);
//别忘了添加notifyDataSetChanged();
adapter.notifyDataSetChanged();

你有布局管理器吗?是的,我有。但是我忘了在@shmuel发布你的适配器代码。你有布局管理器吗?是的,我有。但是我忘了在@shmuel发布你的适配器代码。你可以添加适配器代码吗?描述很好。bt加1表示给出正确答案。描述很好。bt加1表示给出正确答案。