본문 바로가기

ES

JSON 배열 생성

# 배열 생성

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";
	}​

 

# 해보기