From a2468cb18b99aee416f6bb0364a4c9f751a8e50d Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Mon, 28 Jul 2025 15:51:08 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B9=9C=EA=B5=AC=ED=86=A1=20json=20=EB=AC=B8?= =?UTF-8?q?=EC=9E=90=EC=97=B4=20=EC=83=9D=EC=84=B1=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kakaoComm/kakaoApi/KakaoApiJsonSave.java | 72 +++++++++++++++++-- 1 file changed, 67 insertions(+), 5 deletions(-) diff --git a/src/main/java/itn/let/kakao/kakaoComm/kakaoApi/KakaoApiJsonSave.java b/src/main/java/itn/let/kakao/kakaoComm/kakaoApi/KakaoApiJsonSave.java index bc505002..75faba76 100644 --- a/src/main/java/itn/let/kakao/kakaoComm/kakaoApi/KakaoApiJsonSave.java +++ b/src/main/java/itn/let/kakao/kakaoComm/kakaoApi/KakaoApiJsonSave.java @@ -17,6 +17,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; + import itn.com.cmm.util.StringUtil; import itn.let.kakao.kakaoComm.KakaoButtonVO; import itn.let.kakao.kakaoComm.KakaoReturnVO; @@ -216,9 +221,63 @@ public class KakaoApiJsonSave { * 파일은 하나만 생성해서 동일하게 사용함. * * */ - public String kakaoApiFTJsonSave_advc(KakaoVO kakaoVO) { + public String kakaoApiFTJsonSave_advc(KakaoVO kakaoVO) throws JsonProcessingException { // json파일 저장 + + ObjectMapper mapper = new ObjectMapper(); + ObjectNode jo = mapper.createObjectNode(); + + + + // 버튼 + if (kakaoVO.getButtonVOList() != null && !kakaoVO.getButtonVOList().isEmpty()) { + ArrayNode buttonList = mapper.createArrayNode(); + + for (KakaoButtonVO buttonInfoVO : kakaoVO.getButtonVOList()) { + ObjectNode button = mapper.createObjectNode(); + button.put("name", buttonInfoVO.getName()); + button.put("type", buttonInfoVO.getLinkType()); + + switch (buttonInfoVO.getLinkType()) { + case "WL": + button.put("url_mobile", buttonInfoVO.getLinkMo()); + button.put("url_pc", buttonInfoVO.getLinkPc()); + break; + case "AL": + button.put("scheme_ios", buttonInfoVO.getLinkIos()); + button.put("scheme_android", buttonInfoVO.getLinkAnd()); + break; + case "BC": + // 상담톡 + break; + case "BT": + // 봇 전환 + break; + } + buttonList.add(button); + } + jo.set("button", buttonList); + } + + + // 이미지 + String imageType = kakaoVO.getImageType(); + if (StringUtils.isNotEmpty(imageType)) { + ObjectNode image = mapper.createObjectNode(); + image.put("img_url", kakaoVO.getTemplateImageUrl()); + image.put("img_link", StringUtils.isNotEmpty(kakaoVO.getImgLink()) ? kakaoVO.getImgLink() : kakaoVO.getTemplateImageUrl()); + jo.set("image", image); + } + + + // 문자열로 변환 (이스케이프 없음) + return mapper.writeValueAsString(jo); + + + + /* + // 버튼리스트 JSON 생성 JSONArray buttonList = new JSONArray(); @@ -249,11 +308,14 @@ public class KakaoApiJsonSave { if(StringUtils.isNotEmpty(imageType)) { templateImageInfo.put("img_url", kakaoVO.getTemplateImageUrl()); - templateImageInfo.put("img_link", kakaoVO.getImgLink()); + templateImageInfo.put("img_link", StringUtils.isNotEmpty(kakaoVO.getImgLink()) ? kakaoVO.getImgLink() : kakaoVO.getTemplateImageUrl() ); } - if("W".equals(imageType)) { - templateImageExtInfo.put("wide", "Y"); + // wide 여부 + if ("W".equals(imageType)) { + ObjectNode extra = mapper.createObjectNode(); + extra.put("wide", "Y"); + jo.set("extra", extra); } @@ -274,7 +336,7 @@ public class KakaoApiJsonSave { // 입력 json 데이터를 파일로 변경 String jsonStr = jo.toString(); - return jsonStr; + return jsonStr;*/ } /*