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
- backgroundTint
- podinit
- editText
- prolificinteractive/material-calendarview
- RestAPI
- addTextChangedListner
- calendar
- DialogFragment
- android
- Dialog
- viewmodel
- 리눅스
- livedata
- Button
- PostgreSQL
- springboot
- cocoapod
Archives
- Today
- Total
코코딩딩
[자료구조] json 실수한것 본문
restapi를 만들어 db를 조회한 내용을 json 형태로 응답하게 하려고 기존에 알던 방법인 vo를 만들어 list 형태로 return을 한 결과 jsonArray의 형태가 아니라 대괄호로 vo객체들이 감싸져 있는 형태로 출력이 되었다.
ex) [ { "1234", "5678", "91011" } ]
원하는 형태로 데이터를 받기 위해서는 list에 vo를 담는 방식이 아닌 그냥 vo를 return 했더니 json으로 받을 수 있는 형태가 되었다.
json
json 타입은 name / value 형태의 쌍으로 이루어져 있다.
object는 " {} "로 감싸져 있고 " : "로 값을 표현하고 " , " 로 데이터 쌍을 구분한다.
array는 []로 감싸져 있고 " , "로 값을 구분한다.
{
"result": [
{
"user_id": "idid",
"date": "20220519",
"kind": "01"
},
{
"user_id": "idid",
"date": "20220520",
"kind": "01"
},
{
"user_id": "idid",
"date": "20220522",
"kind": "01"
}
]
}
restapi에서 json 리턴하기
스프링 mybatis로 db에서 조회한 내용을 restcontroller 를 통해 json으로 응답을 하도록 구현하였다.
@RestController
@RequestMapping(value="/rest")
public class ChartRestController {
@Autowired
ChartService service;
@ResponseBody
@PostMapping("selectraw")
public String selectRaw(@RequestBody UserVO user) throws Exception {
Gson gson = new Gson();
ChartVO vo1 = service.SelectRawData(user);
ChartSnrVO vo2 = service.SelectSnrData(user);
JsonObject obj = new JsonObject();
String jsonRawData = gson.toJson(vo1);
String jsonEventData = gson.toJson(vo2);
obj.addProperty("rawdata", jsonRawData);
obj.addProperty("eventdata", jsonEventData);
System.out.println(obj);
return obj.toString();
}
}
gson을 이용해 vo 객체를 String으로 파싱한 후 JsonObject에 각 vo에 해당하는 key 값을 만들어 넣어주었다.
이 api에 요청을 하게 되면 다음과 같은 형태로 값을 받을 수 있다.
{
"rawdata":"{\"num\":\"a123\",\"date\":\"20220510\",\"tm\":\"133107\",\"raw_data\":\"{2815,2856,2812,2903,2898}\"}",
"eventdata":"{\"num\":\"a123\",\"date\":\"20220510\",\"tm\":\"133140\",\"a\":\"0\",\"b\":\"0\",\"c\":\"0\"}"
}
return값에 JsonObject를 넣고 싶었지만 toString을 해 string 형태로 해주어야 했다. 나중에는 많이 쓰는 형태인 map 형태를 구현할 예정이다.
'일단기록 > 간단기록' 카테고리의 다른 글
[JAVA] 시간 계산 하기 (0) | 2022.05.20 |
---|---|
[안드로이드/android] activity 화면 전환 데이터 주고받기 (intent) (0) | 2022.05.19 |
[안드로이드/android] editText 위에 겹쳐진 버튼 (0) | 2022.05.18 |
[안드로이드/android] 비밀번호,핸드폰번호 정규식 (0) | 2022.05.11 |
[JAVA] 10초 마다 반복 실행하기 (0) | 2022.05.10 |