在我的应用程序中,我以Json数组的形式获得输出,如下所示
{Students: [{Name: Harry,Subject: maths,},
{Name:Ryan,Subject: Biology,},
{Name:James ,Subject: maths,}]}
从这个数组我想根据应用的条件删除整个对象。
让我们说如果主题是"生物学"删除整个对象并返回:
{Students: [{Name: Harry,Subject: maths,},
{Name:James ,Subject: maths,}]}
如何使用java编程实现这一目标。
答案 0 :(得分:0)
如果您有类(我假设学生在这里),您可以使用像Jackson这样的序列化/反序列化库来解组对象列表到像List这样的集合,然后进行简单的列表操作。假设您收到的JSON为名为students的字符串
List<Student> list = mapper.readValue(students,
TypeFactory.defaultInstance().constructCollectionType(List.class, Student.class));
这应该有用。
编辑: 由于您要求从文件中读取JSON的版本,请转到:
public JSONArray getFilteredStudents(String jsonFilePath) throws Exception {
FileReader fileReader = new FileReader(jsonFilePath);
JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(fileReader);
JSONArray students = (JSONArray) json.get("Students");
Iterator itr = students.iterator();
while (itr.hasNext()) {
JSONObject obj = (JSONObject) itr.next();
if (obj.get("Subject").equals("Biology")) {
itr.remove();
}
}
return students;
}
从here下载json-simple库。