# 배열 생성
1. 여러배열 형태 생성
2. 배열에 배열 데이터 삽입
- 배열 생성 시 주의점
① 안에 있는 배열 먼저 생성 후 밖에 있는 배열로 덮기
② 처음 생성되는 배열 순서는 key 배열 스펠링 순서(collection으로 정렬해야함)
코드)JSONArray ar = new JSONArray();//simple은 .add로 들어감 ar.put("홍길동"); ar.put("강감찬"); ar.put("이순신"); JSONObject jo = new JSONObject(); jo.put("member", ar); String result = ar.toString(); String result2 = jo.toString(); m.addAttribute("data", result); m.addAttribute("data2", result2);
3. JSONObject 와 JSONArray 차이
-> 대괄호 , 중괄호 차이
- JSONArray : 대괄호 [ ]
- JSONObject : 중괄호 { }
-> 이때 best_product 는 " 대표키 " 가 됨 (대표키가 없는 배열도 존재ㅇ)
4. 반복문 이용한 배열생성
⑴ 배열 생성
ArrayList<Object> al = new ArrayList<Object>(); al.add("테스트1"); al.add("테스트2"); JSONObject jo = new JSONObject(); JSONArray ja2 = new JSONArray(); int w = 0; while(w<al.size()) { JSONArray ja = new JSONArray(); ja.put(al.get(w)); ja2.put(ja); w++; } jo.put("review3", ja2); String re = jo.toString(); m.addAttribute("data",re);
⑵ 대표키가 없는 배열 생성
① 코드 예시ArrayList<ArrayList<Object>> all = new ArrayList<ArrayList<Object>>(); ArrayList<Object> al = new ArrayList<Object>(); al.add("1"); al.add("apple"); al.add("홍길동"); all.add(al); ArrayList<Object> al2 = new ArrayList<Object>(); al2.add("2"); al2.add("apink"); al2.add("에이핑크"); all.add(al2); JSONArray ja = new JSONArray(); int w = 0; while(w < all.get(0).size()) { JSONObject jo = new JSONObject(); jo.put("midx", all.get(w).get(0)); jo.put("user_id", all.get(w).get(1)); jo.put("user_name", all.get(w).get(2)); ja.put(jo); w++; } String re = ja.toString(); m.addAttribute("data",re);
5. DB 에 있는 데이터 배열로 찍기 (dao 사용)
- 출력 결과
- 코드 예시)
@GetMapping("/ecma/ecma14ok.do") public String ecma14ok(HttpServletRequest req,Model m, coupon_dao dao) throws Exception { ArrayList<ArrayList<Object>> all = new ArrayList<ArrayList<Object>>(); Connection con = dbinfo.getConnection(); String sql = "select * from coupon order by cidx desc"; PreparedStatement ps = con.prepareStatement(sql); ResultSet rs = ps.executeQuery(); JSONArray ja = new JSONArray(); while(rs.next()) { JSONObject jo = new JSONObject(); jo.put("cidx", rs.getString(1)); jo.put("cpname", rs.getString(2)); jo.put("cprate", rs.getString(3)); jo.put("cpuse", rs.getString(4)); jo.put("cpdate", rs.getString(5)); jo.put("indate", rs.getString(6)); ja.put(jo); } String re = ja.toString(); m.addAttribute("data",re); return "/ecma/ecma14ok"; }