✅ JSONObject.toJSONString()을 사용하여 JSON 문자열을 생성 시, 자동으로 이스케이프 처리되어 BASE64 인코딩 시 문자열이 깨지는 현상 확인
toJSONString() 내부에서 escape()를 호출하여, JSON 값이 null 또는 빈 문자열이 아니면 자동으로 이스케이프 처리import org.json.simple.JSONObject;
public class JsonEscapeIssue {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("data", "Hello \"World\"");
String jsonString = jsonObject.toJSONString();
System.out.println("JSON String: " + jsonString);
String base64Encoded = java.util.Base64.getEncoder().encodeToString(jsonString.getBytes());
System.out.println("BASE64 Encoded: " + base64Encoded);
}
}
출력
BASE64 Encoded: eyJkYXRhIjoiSGVsbG8gXCJXb3JsZFwiIn0=
ObjectMapper.writeValueAsString() 사용String jsonString = objectMapper.writeValueAsString(jsonData);
출력
BASE64 Encoded: eyJkYXRhIjoiSGVsbG8gIldvcmxkIiJ9