java - 根据所选数字从 JSON 数组列表中获取数据
问题描述
我想处理一个来自另一个对象的数组列表,但我希望它只创建一个新的 JSON 数组,其中包含学生编号(应该与 lStudentZelf 相同)和 aanwezigheid。
{
"klas": "V1A",
"docent": "Buddha",
"les": "AUI",
"studenten": [{
"studentnummer": 12312591,
"status": "afwezig"
},
{
"studentnummer": 1214531,
"status": "aanwezig"
},
{
"studentnummer": 1214531,
"status": "aanwezig"
}
]
}
(这就是 arraylist 的样子,我希望它只输出 studentnumber 1214531 的结果,并跟踪这个 studentnumber 有多少次处于 aanwezig 状态。)
我已经尝试了下面的代码,并尝试以其他几种方式解析它但无济于事。
private void ophalen(Conversation conversation) {
JsonObject lJsonObjectIn = (JsonObject) conversation.getRequestBodyAsJSON();
String lGebruikersnaam = lJsonObjectIn.getString("username");
Student lStudentZelf = informatieSysteem.getStudent(lGebruikersnaam);
int lNummerZelf = lStudentZelf.getStudentNummer(); //lNummerZelf will be the number that needs to be the same as the 'studentennummer' in the list.
ArrayList<Statistiek> Test2 = Statistiek.getStatistieken();
JsonArrayBuilder lJsonArrayBuilder = Json.createArrayBuilder();
for (Statistiek s : Test2) {
JsonObjectBuilder lJsonObjectBuilder= Json.createObjectBuilder();
lJsonObjectBuilder.add("aanwezig", aanwezig);
lJsonObjectBuilder.add("afwezig", afwezig);
lJsonObjectBuilder.add("geoorloofd", gafwezig);
lJsonObjectBuilder.add("vak", vak);
lJsonArrayBuilder.add(lJsonObjectBuilder);
}
String lJsonOutStr = lJsonArrayBuilder.build().toString();
conversation.sendJSONMessage(lJsonOutStr);
}
}
最后,我希望它只读取 studentnummer 和 status 部分,并跟踪属于所选 studentnummer 的特定状态出现了多少次(例如 studentnummer 1214531 的 aanwezig 2x)。
解决方案
推荐阅读
- excel - 如何在 VBA 中移动特定值的单元格?
- ios - 如何在不知道方法名称的情况下添加断点来捕获按钮的触摸事件?
- react-native - 在与 expo 反应原生项目中显示视频
- django - 如何从 Django AdminLTE iFrame 注销?
- python - 在 pandas 的数据帧上使用contracts.fix时显示IndexError:字符串索引超出范围
- sql - CTE中变量值的PostgreSQL限制
- python - 如何根据其他列值动态填充列值?
- android - 打开嵌入式 Unity 片段后,父 Android 应用程序中的分辨率发生变化
- asp.net - 将对象列表添加到 SQL Server - ASP.NET Web API
- recaptcha - Google Recaptcha 企业版在 magento 1.9 的同一页面上包含多次