Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java和JSON中的嵌套for循环存在问题_Java_Arrays_Json_Servlets - Fatal编程技术网

Java和JSON中的嵌套for循环存在问题

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

我希望有一个JSON输出,将“postCode”作为“parent”,其子项是“statusName”和“statusCount”

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
邮政编码:67890

  • 状态名称: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());
   }