Java和JSON中的嵌套for循环存在问题
我希望有一个JSON输出,将“postCode”作为“parent”,其子项是“statusName”和“statusCount”Java和JSON中的嵌套for循环存在问题,java,arrays,json,servlets,Java,Arrays,Json,Servlets,我希望有一个JSON输出,将“postCode”作为“parent”,其子项是“statusName”和“statusCount” JSONObject JSONObject=New JSONObject(); JSONArray JSONArray=新的JSONArray(); 用于(统计数据到对象:lstDTO){ put(“postCode”,object.getPostalCode()); log.info(object.getPostalCode()); List listStat=o
JSONObject JSONObject=New JSONObject();
JSONArray JSONArray=新的JSONArray();
用于(统计数据到对象:lstDTO){
put(“postCode”,object.getPostalCode());
log.info(object.getPostalCode());
List listStat=object.getStatistics();
//log.info(“listStat”:+listStat.size());//假设我有两个邮政编码。
if(listStat!=null){
对于(int i=0;i
输出为:
12345
[{“statusName”:“Test1”,“statusCount”:“1”}]
[{“statusName”:“Test2”,“statusCount”:“2”},{“statusName”:“Test2”,“statusCount”:“2”}]
[{“statusName”:“Test3”,“statusCount”:“3”},{“statusName”:“Test3”,“statusCount”:“3”,{“statusName”:“Test3”,“statusCount”:“3”}]
67890
[{“statusName”:“Test4”,“statusCount”:“4”},{“statusName”:“Test4”,“statusCount”:“4”},{“statusName”:“Test4”,“statusCount”:“4”},{“statusName”:“Test4”,“statusCount”:“4”}]
[{“statusName”:“Test5”,“statusCount”:“5”},{“statusName”:“Test5”,“statusCount”:“5”},{“statusName”:“Test5”,“statusCount”:“5”},{“statusName”:“Test5”,“statusCount”:“5”}]
[{“statusName”:“Test6”,“statusCount”:“6”},{“statusName”:“Test6”,“statusCount”:“6”{“statusName”:“Test6”,“statusCount”:“6”},{“statusName”:“Test6”,“statusCount”:“6”{“statusName”:“Test6”,“statusCount”:“6”},{“statusName”:“Test6”,“statusCount”:“6”},{“statusCount”:“6”] 结果应该与下面的结果类似,但是是JSON格式的。我注意到该值被重复 邮政编码:12345
- 状态名称:Test1状态计数:1
- 状态名称:Test2状态计数:2
- 状态名称:Test3状态计数:3
- 状态名称:Test4状态计数:4
- 状态名称:Test5状态计数:5
- 状态名称:Test6状态计数:6
jsonObject
,以避免重复值
检查此代码:
JSONArray jsonArray = New JSONArray();
for (StatisticsDTO object : lstDTO) {
JSONObject jsonObject = New JSONObject(); //Move it here
jsonObject.put("postCode",object.getPostalCode());
log.info(object.getPostalCode());
List <StatisticsDetailsDTO> listStat = object.getStatistics();
//log.info("listStat" : + listStat.size()); // Assuming that I have 2 postal codes.
JSONArray tempJsonArray = New JSONArray();
if (listStat != null) {
for (int i = 0; i< listStat.size(); i++) {
StatisticsDetailsDTO dtostat = listStat.get(i);
jsonObject.put("statusName",dtostat.getStatName());
jsonObject.put("statusCount",dtostat.getStatCount());
jsonArray.add(jsonObject);
tempJsonArray.add(jsonObject);
}
}
log.info(tmepJsonArray.toString());
}
JSONArray-JSONArray=New-JSONArray();
用于(统计数据到对象:lstDTO){
JSONObject JSONObject=新建JSONObject();//将其移到此处
put(“postCode”,object.getPostalCode());
log.info(object.getPostalCode());
List listStat=object.getStatistics();
//log.info(“listStat”:+listStat.size());//假设我有两个邮政编码。
JSONArray tempJsonArray=新的JSONArray();
if(listStat!=null){
对于(int i=0;i
Hi,它现在显示如下内容:12345[{“statusName”:“Test1”,“statusCount”:“1”}][{“statusName”:“Test1”,“statusCount”:“1”},{“statusName”:“Test2”,“statusCount”:“2”}][{“statusName”:“Test1”,“statusCount”:“1”},{“statusName”:“Test2”,“statusCount”:“2”{“statusName”:“Test3”,“statusCount”:“3”}]现在试试。我更改了日志记录。仍然相同。您可以发布您看到的数据吗?12345[{“statusName”:“Test1”,“statusCount”:“1”}[{“statusName”:“Test1”,“statusCount”:“1”},{“statusName”:“Test2”,“statusCount”:“2”}[{“statusName”:“Test1”,“statusCount”:“1”},{“statusName”:“Test2”,“statusCount”:“2”;“2”},{“statusName”:“Test3”}
JSONArray jsonArray = New JSONArray();
for (StatisticsDTO object : lstDTO) {
JSONObject jsonObject = New JSONObject(); //Move it here
jsonObject.put("postCode",object.getPostalCode());
log.info(object.getPostalCode());
List <StatisticsDetailsDTO> listStat = object.getStatistics();
//log.info("listStat" : + listStat.size()); // Assuming that I have 2 postal codes.
JSONArray tempJsonArray = New JSONArray();
if (listStat != null) {
for (int i = 0; i< listStat.size(); i++) {
StatisticsDetailsDTO dtostat = listStat.get(i);
jsonObject.put("statusName",dtostat.getStatName());
jsonObject.put("statusCount",dtostat.getStatCount());
jsonArray.add(jsonObject);
tempJsonArray.add(jsonObject);
}
}
log.info(tmepJsonArray.toString());
}