전체/Java

JSONObject 생성, JSONObject를 JSONArray에 넣기, JSONArray를 ArrayList에 넣기

effortDev 2019. 11. 5. 11:43


JSONObject로 생성, JSONObject 리스트 JSONArray에 넣기, JSONArray를 ArrayList에 넣기



1. string 형태의 배열문자열을 split 하여 string array에 넣는다. 


1
2
String[] myCodeArr = [01020304]
String[] motherCodeArr = [999897]
cs



2. string array에 들어간 데이터 값과 name, updateTime값을 JSONObject에 다시 넣는다.


1
2
3
4
5
6
JSONObject jsonObj1 = new JSONObject();

jsonObj1.put("myCode", myCodeArr);
jsonObj1.put("name", name);
jsonObj1.put("motherCode", motherCodeArr);
jsonObj1.put("updatedTime", updatedTime);
cs


1
2
3
4
5
6
  "myCode":["01","02","03","04"],
  "name":"jihyun",
  "motherCode":["99","98","97"],
  "updatedTime":"2019-11-05 12:48:12"
}
cs



3. JSONObject를 여러개 갖고 싶어 JSONArray 안에 다시 넣는다.


1
2
JSONArray jsonArr1 = new JSONArray();
jsonArr1.put(jsonObj1);
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
   { 
      "myCode":["01","02","03","04"],
      "name":"jihyun",
      "motherCode":["99","98","97"],
      "updatedTime":"2019-11-05 12:48:12"
   },
   { 
      "myCode":["11","22","33"],
      "name":"yumi",
      "motherCode":["20","30"],
      "updatedTime":"2019-11-05 12:48:12"
   }
]
cs



4. JSONArray에 담긴 것을 JSONObject 형식을 유지한 ArrayList로 만들고 싶다.

JSONArray에 담긴 것을 하나씩 JSONObject로 뽑아내어 ArrayList에 add 시킨다.

JSONObject[] jsons안에 array사이즈를 할당하고 toArray() 를 사용해 arrayJson이 갖고 있는 값의 형태로 arraylist를 생성한다.


1
2
3
4
5
6
7
8
9
ArrayList<JSONObject> arrayJson = new ArrayList<JSONObject>();
 
for (int k = 0; k < jsonArr1.length(); k++) {
    JSONObject tempJson = jsonArr1.getJSONObject(k);
    arrayJson.add(tempJson);
}
 
JSONObject[] jsons = new JSONObject[arrayJson.size()];
arrayJson.toArray(jsons);
cs



5. 전체 소스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
private void arrIntoJson() throws JSONException {
 
    String name = "";
    String myCode = "";
    String motherCode = "";
    JSONArray jsonArr1 = new JSONArray();
    
    for(int i=0; i<2; i++) {
    
        if(i==0) {
            name = "jihyun";
            myCode = "[01,02,03,04]";
            motherCode = "[99,98,97]";
        }else {
            name = "yumi";
            myCode = "[11,22,33]";
            motherCode = "[20,30]";
        }
        
        String updatedTime = String.valueOf(DateUtil.getLocalDateTime("yyyy-MM-dd HH:mm:ss"));
        String[] myCodeArr = myCode.substring(1, myCode.length()-1).split(",");
        String[] motherCodeArr = motherCode.substring(1, motherCode.length()-1).split(",");
        
        JSONObject jsonObj1 = new JSONObject();
        jsonObj1.put("name", name);
        jsonObj1.put("myCode", myCodeArr);
        jsonObj1.put("motherCode", motherCodeArr);
        jsonObj1.put("updatedTime", updatedTime);
        jsonArr1.put(jsonObj1);
    }
    
    ArrayList<JSONObject> arrayJson = new ArrayList<JSONObject>();
    
    for (int k = 0; k < jsonArr1.length(); k++) {
        JSONObject tempJson = jsonArr1.getJSONObject(k);
        arrayJson.add(tempJson);
    }
    
    JSONObject[] jsons = new JSONObject[arrayJson.size()];
    arrayJson.toArray(jsons);
    
    System.out.println(jsons);
}
cs


arrayJson의 값


1
2
3
4
5
6
7
8
9
10
11
12
13
14
   { 
      "myCode":["01","02","03","04"],
      "name":"jihyun",
      "motherCode":["99","98","97"],
      "updatedTime":"2019-11-05 12:48:12"
   },
   { 
      "myCode":["11","22","33"],
      "name":"yumi",
      "motherCode":["20","30"],
      "updatedTime":"2019-11-05 12:48:12"
   }
]
cs