Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 과정평가형
- sql
- jQuery
- CSS
- Oracle
- javascript
- html
- JVM
- mybatis
- json
- controller
- 정의
- 암호화
- spring
- 태그
- web.xml
- eGov
- 개념
- select
- jsp
- input
- was
- 함수
- POI
- Ajax
- TO_DATE
- eGovFramework
- array
- 오류
- Java
Archives
- Today
- Total
web developer
[java] JSON 데이터를 controller에서 생성하여 jsp로 데이터 가져오기 본문
728x90
728x90
JSON 데이터 controller(java단)에서 만들어 jsp에 JSON 데이터 보내기
POM.xml에 depencency 추가
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
modelandView로 가져오기
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
@RequestMapping(value = "/test.do", method = RequestMethod.GET)
@ResponseBody
public ModelAndView test() {
ModelAndView mv = new ModelAndView();
mv.setViewName("/board/content"); // 뷰의 이름
try {
JsonObject obj1 = new JsonObject(); //상위 오브젝트 생성
JSONArray arrayData = new JSONArray(); //array
for(int i=0; i<3; i++){ //for문 안에 놓아야 한다. (중복 해결)
JsonObject obj2 = new JsonObject();
obj2.put("class",i);
obj2.put("name",i);
obj2.put("age",i);
obj2.put("score",i);
arrayData.add(obj2);
}
obj1.put("data", obj2); // 최상위의 jsonObject에 data 혹은 Array를 넣어준다.
mv.addObject("obj1", obj1); // 뷰로 보낼 데이터
}catch(Exception e) {
System.out.println("예외상황 발생")
}
}
[{"data":
{"score":0,"name":0,"class":0,"age":0},
{"score":1,"name":1,"class":1,"age":1},
{"score":2,"name":2,"class":2,"age":2}
]}
String으로 가져오기 / JSONArray
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
@RequestMapping(value = "/test.do", method = RequestMethod.GET)
@ResponseBody
public String test() {
String jsonData = ""; // String
try {
JSONObject obj1 = new JSONObject(); //상위 - 1차 오브젝트 생성
JSONArray arrayData = new JSONArray(); //array
for(int i=0; i<3; i++){
//for문 안에 놓아야 한다. (중복 해결)
JSONObject obj2 = new JSONObject(); // 2차 오브젝트 생성
obj2.put("class",i);
obj2.put("name",i);
obj2.put("age",i);
obj2.put("score",i);
arrayData.add(obj2);
}
//마지막으로 최상위의 jsonObject에 data 혹은 Array를 넣어준다.
obj1.put("data", arrayData);
jsonData = obj1.toString();
}catch(Exception e) {
System.out.println("예외상황 발생");
}
return jsonData;
}
[{"data":
{"score":0,"name":0,"class":0,"age":0},
{"score":1,"name":1,"class":1,"age":1},
{"score":2,"name":2,"class":2,"age":2}
]}
String으로 가져오기 / JSONObject
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
@RequestMapping(value = "/test.do", method = RequestMethod.GET)
@ResponseBody
public String test() {
String jsonData = ""; // String
try {
JSONObject obj1 = new JSONObject(); // 상위 1차 오브젝트 생성
JSONObject obj2 = new JSONObject(); // 2차 오브젝트 생성
for(int i=0; i<3; i++){
//for문 안에 놓아야 한다. (중복 해결)
JSONObject obj3 = new JSONObject(); // 3차 오브젝트
obj3.put("class",i);
obj3.put("name",i);
obj3.put("age",i);
obj3.put("score",i);
obj2.put("student" + i, obj3);
}
//마지막으로 최상위의 jsonObject에 data 혹은 Array를 넣어준다.
obj1.put("data", obj2);
jsonData = obj1.toString();
}catch(Exception e) {
System.out.println("예외상황 발생");
}
return jsonData;
}
{
"data":{
"student0": {
"score":0,
"name":0,
"class":0,
"age":0
},
"student1": {
"score":1,
"name":1,
"class":1,
"age":1
},
"student2": {
"score":2,
"name":2,
"class":2,
"age":2
}
}
}
String으로 가져오기 / JSONObject + 배열
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
@RequestMapping(value = "/test.do", method = RequestMethod.GET)
@ResponseBody
public String test() {
String jsonData = ""; // String
try {
JSONObject jsonObj1 = new JSONObject(); // 1차 오브젝트 생성
JSONObject jsonObj2 = new JSONObject(); // 2차 오브젝트 생성
String [] array = new String[1];
String first = "first";
String second = "second";
array[0] = first + ',' + second;
// array : [Ljava.lang.String;@290b6f9f
// array -> 주소값
jsonObj2.put("test1", array);
// Arrays.toString(array) : [first,second]
// Arrays.toString(array) -> 배열값 출력
jsonObj2.put("test2", Arrays.toString(array));
//마지막으로 최상위의 jsonObject1에 data 혹은 Array를 넣어준다.
jsonObj1.put("data", jsonObj2);
jsonData = jsonObj1.toString();
}catch(Exception e) {
System.out.println("예외상황 발생");
}
return jsonData;
}
{
"data": {
"test2":"[first,second]",
"test1":[Ljava.lang.String;@36e1c3be
}
}
참조 : https://tsop.tistory.com/29
728x90
728x90
'Language > Java' 카테고리의 다른 글
HTTP 정의 / 특징 / 헤더 (0) | 2023.01.16 |
---|---|
[java] Content-Type (0) | 2023.01.15 |
[java] JSON(JavaScript Object Notation)과 JavaScript Object 차이 (0) | 2022.11.16 |
[java] JVM이란 무엇인가 (2) | 2022.11.03 |
[java] InputStream와 OutputStream의 개념 (0) | 2022.09.07 |