2017년 7월 19일 수요일

JAVA ObjectMapper 클래스 json<->String

1.1 Convert Java object to JSON, writeValue(...)
ObjectMapper mapper = new ObjectMapper();
Staff obj = new Staff();

//Object to JSON in file
mapper.writeValue(new File("c:\\file.json"), obj);

//Object to JSON in String
String jsonInString = mapper.writeValueAsString(obj);
1.2 Convert JSON to Java object, readValue(...)
ObjectMapper mapper = new ObjectMapper();
String jsonInString = "{'name' : 'mkyong'}";

//JSON from file to Object
Staff obj = mapper.readValue(new File("c:\\file.json"), Staff.class);

//JSON from URL to Object
Staff obj = mapper.readValue(new URL("http://mkyong.com/api/staff.json"), Staff.class);

//JSON from String to Object
Staff obj = mapper.readValue(jsonInString, Staff.class);
실제사용예시
List<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();
resultList = testDAO.selectListDAO(SearchVO);
ObjectMapper om = new ObjectMapper();
String jsonStr = om.writeValueAsString(resultList);

   ->[{"value1":8.4, "value2":5.4}, {"value1":8.4, "value2":5.4} ]
      이와 같은 형태로 [ ] 안에 json {} 으로 묶이게 된다
      다시 꺼내서 사용할 때는 [] 로 묶여있기 때문에 list로 빼내야함
      var resultCondition = JSON.parse(results[i].resultCondition)[0];

      만약에 []로 묶인것이 아니라 {"value1":8.4, "value2":5.4} 로 묶였다면 아래와 같이만 하면된다
      var resultCondition = JSON.parse(results[i].resultCondition);




JAVA 객체 SERIALIZE와 DESERIALIZE

SERIALIZE
객체를 직렬화하여 전송 가능한 형태로 만드는것을 의미. 객체들의 데이터를 연속적인 데이터로 변형하여 stream을 통해 데이터를 읽도록 해준다.
주로 객체들을 통째로 파일로 저장하거나 전송하고 싶을 때 사용
(홍길동, null, 222@bac.com ,30)
(김길동, null, kkk@bac.com , 40)
DESERIALIZE
직렬화된 파일 등을 역으로 직렬화 하여 다시 객체로 만듬.
저장한 파일을 읽거나 전송된 스트렘 데이터를 읽어 원래 객체 형태로 복원함
[(홍길동, null, 222@bac.com ,30), (김길동, null, kkk@bac.com , 40)]

2017년 7월 13일 목요일

PC인지 mobile인지 구분


보통 jstl사용시 taglibs.jsp에 포함시킴
<c:set var="currentDevice" value="${currentDevice.mobile ? 'mobile' : 'pc'}" />


css와 같은 파일 Device로 분기할 경우
<!-- CDN static files -->
<c:if test="${mode eq 'local'}">
<script type="text/javascript" src="/iimg/messages/tmessage_${(empty currentLanguage) ? 'ko_KR' : currentLanguage }.js?v=${cdnVersion }"></script>
</c:if>