반응형
코딩을 하다 보니 배열을 2차원 배열로 바꿔서 사용 해야 될때가 있었습니다.
다시 까먹지 않게 로직이라도 작성해 보려고 합니다.
JSONParser jsonParser = new JSONParser();
ArrayList<String[]> gridData = new ArrayList<String[]>();
ArrayList<String[]> stringData = new ArrayList<String[]>();
JSONObject jaStatistics = new JSONObject();
JSONObject jo = (JSONObject) jsonParser.parse(response.getBody().toString());
JSONArray columns = (JSONArray) jsonParser.parse(jo.get("columns").toString());
String[] header = new String[columns.size()];
for(int i = 0; i < columns.size(); i++) {
jaStatistics = (JSONObject) jsonParser.parse(columns.get(i).toString());
header[i] = jaStatistics.get("name").toString();
}
gridData.add(header);
for(int i = 0; i < columns.size(); i++) {
JSONObject jsonObject = new JSONObject();
jsonObject = (JSONObject) jsonParser.parse(columns.get(i).toString());
JSONArray jaarray = (JSONArray) jsonParser.parse(jsonObject.get("tableData").toString());
String[] data = new String[jaarray.size()];
for(int j = 0; j < jaarray.size(); j++) {
JSONObject joData = (JSONObject) jsonParser.parse(jaarray.get(j).toString());
data[j] = joData.get("data").toString();
}
stringData.add(data);
}
int length = 0;
for(int i = 0; i < stringData.size(); i++) {
if(length < stringData.get(i).length) {
length = stringData.get(i).length;
}
}
String[][] stringArray = new String[stringData.size()][length];
for(int i = 0; i < stringData.size(); i++) {
String[] array = stringData.get(i);
for(int j = 0; j < array.length; j++) {
stringArray[i][j] = array[j];
}
}
String[][] stringArrayAfter = new String[length][stringData.size()];
for(int i = 0; i < stringData.size(); i++) {
for(int j = 0; j < length; j++) {
if(stringArray[i][j] == null) {
stringArrayAfter[j][i] = "";
} else {
stringArrayAfter[j][i] = stringArray[i][j];
}
}
}
for(int i = 0; i < length; i++) {
gridData.add(stringArrayAfter[i]);
}
위 코드는 표에 해당 하는 값을 나타내기 위한 로직입니다.
기존 다른테이블에 있는 값을 새로운 테이블에 넣기 위한 코드입니다.
stringData는 gridData(테이블)에 들어갈 데이터입니다.
girdData는 새로운 테이블이라고 보시면 됩니다.
반응형
'Programming > JAVA' 카테고리의 다른 글
[JAVA] Spring Boot(스프링 부트) - Security(시큐리티) 설정 (0) | 2022.12.24 |
---|---|
[JAVA] 정규 표현식 (regex) (0) | 2021.12.12 |
[JAVA] 파일 이동 및 파일명 변경 - FileUtils (0) | 2021.12.07 |
[JAVA] 파일 이동 및 파일명 변경 - renameTo (0) | 2021.12.06 |
[JAVA] 로컬에 있는 파일 하둡(Hadoop)으로 복사 (0) | 2020.03.26 |
댓글