① 안에 있는 배열 먼저 생성 후 밖에 있는 배열로 덮기 ② 처음 생성되는 배열 순서는 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";
}