2016-08-24 96 views
0

这是我目前格式化JSON

[{ 
    "year": "2015", 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "amt": "2", 
    "org_id": "4", 
    "suborg_id": "24" 
}, { 
    "year": "2016", 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "amt": "1", 
    "org_id": "4", 
    "suborg_id": "24" 
}] 

我想这种格式

[{ 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "suborg_id": "24", 
    "org_id": "4", 
    "Year": [{ 
     "year": "2015", 
     "amt": "2" 
    }, { 
     "year": "2016", 
     "amt": "1" 
    }] 
}] 

下面是我如何得到我的当前值:

List<String> list = new ArrayList<String>(); 
while (rs2.next()) { 
    JSONObject json = new JSONObject(); 

    if (!rs2.getString("suborg_id").isEmpty()) { 
     json.put("org_name", org_name); 
     json.put("year", year); 
     json.put("suborg_name", suborg_name); 
     json.put("amt", amt); 
     json.put("org_id", org_id); 
     json.put("suborg_id", suborg_id); 
    } 

    finaljson2.put(counter2, json.toString()); 
    counter2++; 
    list.add("" + json + ""); 
} 

//out.println("[" + finaljson2.toString() + "]"); 
out.println(list); 

我把在if语句中希望它会组同样suborg_id

UPDATE

试图推到JSON像

​​

我的输出中看起来像之前添加一年,金额新的数组:

[{ 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "org_id": "4", 
    "suborg_id": "24", 
    "year": { 
     "year": "2015", 
     "amt": "2" 
    } 
}, { 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "org_id": "4", 
    "suborg_id": "24", 
    "year": { 
     "year": "20165", 
     "amt": "1" 
    } 
}] 

我的目标是让格式

[{ 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "suborg_id": "24", 
    "org_id": "4", 
    "Year": [{ 
     "year": "2015", 
     "amt": "2" 
    }, { 
     "year": "2016", 
     "amt": "1" 
    }] 
}] 
+0

而且可能是什么问题? – Burkhard

+0

我需要从查询结果创建一个多维数组。问题是我无法创建它作为多维它总是结束了只是单一@Burkhard –

+0

@Burkhard我有更新好心地检查 –

回答

0

试试这个

List<String> list = new ArrayList<String>(); 
    while (rs2.next()) { 
    JSONObject json = new JSONObject(); 
if (!rs2.getString("suborg_id").isEmpty()) { 
json.put("org_name", org_name); 
json.put("suborg_name", suborg_name); 
json.put("org_id", org_id); 
json.put("suborg_id", suborg_id); 
json.put("year"); 

[{ 
    json.put("year", year); 
    json.put("amt", amt); 
    },{ 
    json.put("year", year); 
    json.put("amt", amt); 
    }] 

} 
finaljson2.put(counter2, json.toString()); 
counter2++; 
list.add("" + json + ""); 
} 
+0

在这里得到错误''json.put(“年”);'说'没有合适的方法为put(字符串)' –

+0

检查此线程.. http://stackoverflow.com/questions/10900235/how-to-write-a-nested-multi-dimensional-json-object可能b你从这个 – user6628729

+0

它的想法它是PHP我认为在Java中它的不同 –