[JAVA] 간단한 일회성 JSON 데이터를 만들기 귀찮을 때...
API 서버를 개발하다보면 아래와 같이 간단한 JSON 타입을 Response 값으로 반환해야 하는 경우가 종종 생긴다.
{ "success" : true, "id" : 1024,
"status": { "method" : "get", "code" : 202 } }"items" : [0,7,9,12],
만약 위 값이 일회성이라고 가정할 때, GSON 같은 도구를 사용하기 위하여 객체로 만들거나 스트링을 사용해서 이어 붙이기에는 구현하기가 복잡하거나 귀찮아 지는 경우가 종종 발생한다.
그래서 이런 귀찮은 작업들을 간단하게 줄여주는 코드를 만들었고, 공유한다.
JsonMaker.java 파일을 만들고 아래 주소에 있는 코드를 붙여넣기 하여 사용할 수 있다.
https://gist.github.com/ice3x2/0e73d96c5c6724116f5f
이 것을 활용한다면, 위 JSON 타입을 간단하게 만들 수 있다.
String jsonValue = JsonMaker.put("success", true).put("id", 1024) .openArray("items").next(0).next(7).next(9).next(12).closeArray() .openObject("status") .put("method", "get") .put("code", 202) .closeObject().toString();
단, 주의사항은(단점) toString() 을 호출하는 순간 내부적으로 생성된 JSON 데이터 리스트가 모두 초기화 되어버린다.
이렇게 한 이유는 메모리 누수를 방지하기 위해서인데, 더 좋은 방법을 고민해보고 개선된 버전이 생기면 업데이트 하겠다.