Java 如何从JSON文件动态获取数据

Java 如何从JSON文件动态获取数据,java,json,android-studio,Java,Json,Android Studio,所以我制作了这个迷你应用程序来学习JSON 基本上这就是JSON文件 { "Student1" : { "name" : "Amine" , "mark": 19, "Groupe": "G25" }, "Student2" : { "name" : "Zaki" , "mark": 19, "groupe": "G25", } } 我试着不用“Student1”,而是用“Student”+“1” 如果有更简单的方法,请告诉我

所以我制作了这个迷你应用程序来学习JSON

基本上这就是JSON文件

{
  "Student1" : {
    "name" : "Amine" ,
    "mark": 19,
    "Groupe": "G25"
  },
  "Student2" : {
    "name" : "Zaki" ,
    "mark": 19,
    "groupe": "G25",
  }

}
我试着不用“Student1”,而是用“Student”+“1”

如果有更简单的方法,请告诉我
谢谢

我建议使用Gson将JSON解析为一个对象。 之后,操作数据将更容易

首先,创建一个具有yout JSON结构的Java类:

 public class Student {
       private String name;
       private int mark;
       private String group;

// add the getters and setters
} 
然后,使用Gson解析对象:

    Student student = new Gson().fromJson(json, Student.class);
如果要从对象构建JSON,请使用Gson的toJson方法:

Student student = new Student();
student.setName("Peter");
student.setMark(10);
student.setGroup("ABC");

String json = new Gson().toJson(student);

如果您想了解更多关于Gson的信息,请查看本教程,它非常好:

我建议使用Gson将JSON解析为对象。 之后,操作数据将更容易

首先,创建一个具有yout JSON结构的Java类:

 public class Student {
       private String name;
       private int mark;
       private String group;

// add the getters and setters
} 
然后,使用Gson解析对象:

    Student student = new Gson().fromJson(json, Student.class);
如果要从对象构建JSON,请使用Gson的toJson方法:

Student student = new Student();
student.setName("Peter");
student.setMark(10);
student.setGroup("ABC");

String json = new Gson().toJson(student);

如果您想了解更多关于Gson的信息,请查看本教程,它非常好:

我想您想要的是一份学生项目列表:

[
  {
    "name" : "Amine" ,
    "mark": 19,
    "groupe": "G25"
  },
  {
    "name" : "Zaki" ,
    "mark": 19,
    "groupe": "G25"
  }
]
然后使用一个类,例如:

public class Student {
    @JsonProperty("name")
    private String name;
    @JsonProperty("mark")
    private Integer mark;
    @JsonProperty("groupe")
    private String groupe;

    //getters and setters    
}

然后使用jackson在列表中迭代

我想你想要的是学生项目列表:

[
  {
    "name" : "Amine" ,
    "mark": 19,
    "groupe": "G25"
  },
  {
    "name" : "Zaki" ,
    "mark": 19,
    "groupe": "G25"
  }
]
然后使用一个类,例如:

public class Student {
    @JsonProperty("name")
    private String name;
    @JsonProperty("mark")
    private Integer mark;
    @JsonProperty("groupe")
    private String groupe;

    //getters and setters    
}

然后使用jackson遍历列表

如果使用Spring MVC,可以使用@RequestBody注释。我认为这没有意义。这意味着您有两种不同的对象类型:Student1和Student2。您是否想要这些对象的列表?[{“name”:“Amine”,“mark”:19,“groupe”:“G25”},{“name”:“Zaki”,“mark”:19,“groupe”:“G25”}]如果使用Spring MVC,可以使用@RequestBody注释。我认为这没有意义。这意味着您有两种不同的对象类型:Student1和Student2。您是否想要这些对象的列表?[{“name”:“Amine”,“mark”:19,“groupe”:“G25”},{“name”:“Zaki”,“mark”:19,“groupe”:“G25”}]他们的JSON包含多个学生。对于列表,可以使用:list studentList=new Gson().fromJson(response.getBody(),new TypeToken(){}.getType());他们的JSON包含多个学生。对于列表,您可以使用:list studentList=new Gson().fromJson(response.getBody(),new TypeToken(){}.getType());问题是,我的应用程序没有加载整个student/mark/groupe列表,而是根据用户请求的学生编号显示这些信息,我将该编号放入EditText.getText().toString()输入的字符串中;你是否被锁定为你在OP中指定的json格式?不,我没有被锁定为json一位朋友向我推荐我的应用程序没有加载整个student/mark/groupe列表它根据用户请求的学生编号显示这些信息,我将该编号放入EditText.getText().toString()输入的字符串中;你被锁定到你在OP中指定的json格式了吗?没有,我没有被锁定到json。一个朋友向我推荐了它