SPRING
2019.01.13 / 22:16

BEAN을 Json으로 변환하기

hanulbit
추천 수 51

Spring과 Hibernate의 조합에서

Bean을 통한 데이터를 주고 받을때 많이 사용했다.

여기의 장점은 원형 그대로의 데이터를 json 데이터로 변환해서 화면에 가져갈 수 있는데 JSONObject나 JSONArray같은 것들으 통해서 변환 과정을 거치지 않아도 된다는 것이 장점이더라.

보통은

JOSNObject jsonObject = new JSONObject();

생성을 통해 JSONArray jsonArray = new JSONArray();

에 add하는 방식으로 json String을 만들어준다.

굳이 이렇게 하지 않아도 Spring에서는 @ResponseBody를 통해서 Bean형태를 자동으로 json 형태로 변환할 수 있다.

그럼 flexJson을 써보자.

pom.xml

<!-- flexJson -->
  <dependency>
   <groupId>net.sf.flexjson</groupId>
   <artifactId>flexjson</artifactId>
   <version>3.2</version>
  </dependency>

 

java

public String setJSONString(Hichart hichart) {
  String jsonData = new JSONSerializer()
      .exclude("*.class")
      .exclude("xAxis")    
      .exclude("seriesList.data.drilldown")
      .exclude("seriesList.data.events")
      .exclude("seriesList.data.id")
      .exclude("seriesList.data.legendIndex")
      .exclude("seriesList.data.intermediateSum")
      .exclude("seriesList.data.sliced")
      .exclude("seriesList.data.sum")
      .exclude("seriesList.data.x")
      .include("seriesList")
      .include("seriesList.data")
      .serialize(hichart);
  return jsonData;
 }

exclude는 jsonString을 생성할때 제외하는 항목이다

include는 josnString을 생성할때 포함하는 항목이다.

예를 들어

String data라는 변수가 있을 경우 이 data라는 변수를 굳이 jsonString에 포함시키지않을려면 excluce 키워드를 사용하면 된다.

여튼 jsonString이 생성되는 걸 확인해보고 제외할 변수같은 것들은 위와 같이 생성해줄 수 있다.