diff --git a/src/main/java/io/company/localhost/service/localbordService.java b/src/main/java/io/company/localhost/service/localbordService.java index 7a36ee2..de07c5d 100644 --- a/src/main/java/io/company/localhost/service/localbordService.java +++ b/src/main/java/io/company/localhost/service/localbordService.java @@ -191,14 +191,15 @@ public class localbordService { private String extractFirstImageUrl(String jsonContent) { try { + // JSON 유효성 검사 + if (!isValidJson(jsonContent)) { + throw new IllegalArgumentException("Invalid JSON content: " + jsonContent); + } + ObjectMapper objectMapper = new ObjectMapper(); JsonNode rootNode = objectMapper.readTree(jsonContent); - if (!rootNode.isArray()) { - System.err.println("JSON content is not an array"); - return null; - } - + // JSON 배열 순회 for (JsonNode node : rootNode) { JsonNode insertNode = node.get("insert"); if (insertNode != null && insertNode.has("image")) { @@ -212,6 +213,16 @@ public class localbordService { return null; // 이미지가 없는 경우 } + private boolean isValidJson(String json) { + try { + final ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.readTree(json); // JSON 파싱 시도 + return true; // JSON이 유효하면 true 반환 + } catch (Exception e) { + return false; // 유효하지 않은 경우 false 반환 + } + } + private String extractPlainTextFromJson(String jsonContent) { StringBuilder plainTextBuilder = new StringBuilder(); try { @@ -257,20 +268,15 @@ public class localbordService { post.put("dislikeCount", reactions.getOrDefault("dislikeCount", 0)); Object content = post.get("content"); - if (content != null) { - String contentString = convertBlobToString(content); - post.put("content", contentString); + String contentString = convertBlobToString(content); + post.put("content", contentString); - // 첫 번째 이미지 URL 및 순수 텍스트 추출 - String firstImageUrl = extractFirstImageUrl(contentString); - post.put("firstImageUrl", firstImageUrl); + String firstImageUrl = extractFirstImageUrl(contentString); + post.put("firstImageUrl", firstImageUrl); - String plainContent = extractPlainTextFromJson(contentString); - post.put("plainContent", plainContent); + String plainContent = extractPlainTextFromJson(contentString); + post.put("plainContent", plainContent); } - } else { - post.put("commentCount", 0); - } } }