Python, JavaScript 및 Java에서 JSON 문자열 이스케이프 해제하는 방법
Emily Parker
Product Engineer · Leapcell

Key Takeaways
- Python, JavaScript 및 Java의 기본 제공 JSON 파서는 문자열의 이스케이프를 자동으로 해제합니다.
- 이스케이프 문자가 있는 비 JSON 문자열에는 특정 디코딩 방법이 필요합니다.
- 온라인 도구를 사용하면 코드 없이도 빠르게 이스케이프를 해제할 수 있습니다.
JSON 데이터를 사용할 때 \"
, \\
, \n
및 \t
와 같은 이스케이프 시퀀스가 포함된 문자열을 자주 접하게 됩니다. 이러한 시퀀스는 특수 문자가 JSON 문자열 내에서 올바르게 표현되도록 합니다. 그러나 이 데이터를 처리하거나 표시할 때 이러한 이스케이프된 시퀀스를 원래 형태로 다시 변환해야 하는 경우가 많습니다. 이 프로세스를 "이스케이프 해제"라고 합니다.
이 가이드에서는 Python, JavaScript 및 Java에서 JSON 문자열의 이스케이프를 해제하는 방법을 살펴봅니다.
JSON 이스케이프 해제란 무엇입니까?
JSON 이스케이프 해제는 JSON 문자열에서 이스케이프된 문자를 원래 형태로 다시 변환하는 것을 의미합니다. 예를 들면 다음과 같습니다.
- 이스케이프됨:
"She said: \"Hello!\""
- 이스케이프 해제됨:
She said: "Hello!"
이 프로세스는 JSON 데이터를 정확하게 해석하고 표시하는 데 필수적입니다.
Python: JSON 문자열 이스케이프 해제
json.loads()
사용
Python의 기본 제공 json
모듈은 JSON 문자열을 구문 분석할 때 이스케이프 해제를 자동으로 처리합니다.
import json escaped_json = '{"message": "Hello, \"world\"!\nThis is a backslash: \\"}' data = json.loads(escaped_json) print(data["message"])
출력:
Hello, "world"!
This is a backslash: \
이 예제에서 json.loads()
는 JSON 문자열을 구문 분석하고 특수 문자의 이스케이프를 자동으로 해제합니다.
encode()
및 decode()
사용
JSON은 아니지만 이스케이프 시퀀스가 포함된 문자열의 경우 인코딩 및 디코딩 메서드를 사용할 수 있습니다.
escaped_string = 'Line1\nLine2\nLine3' unescaped_string = escaped_string.encode('utf-8').decode('unicode_escape') print(unescaped_string)
출력:
Line1
Line2
Line3
이 접근 방식은 이스케이프 시퀀스가 있지만 JSON 형식은 아닌 문자열을 처리할 때 유용합니다.
JavaScript: JSON 문자열 이스케이프 해제
JSON.parse()
사용
JavaScript에서 JSON.parse()
는 JSON 데이터를 구문 분석할 때 문자열의 이스케이프를 자동으로 해제합니다.
const escapedJson = '{"message": "Hello, \"world\"!\nThis is a backslash: \\"}'; const data = JSON.parse(escapedJson); console.log(data.message);
출력:
Hello, "world"!
This is a backslash: \
여기서 JSON.parse()
는 JSON 문자열을 구문 분석하고 특수 문자의 이스케이프를 해제합니다.
unescape()
에 대한 참고 사항
JavaScript의 unescape()
함수는 더 이상 사용되지 않으므로 사용하지 않아야 합니다. 대신 이스케이프 해제를 위해 decodeURIComponent()
또는 JSON.parse()
를 사용하십시오.
Java: JSON 문자열 이스케이프 해제
Jackson에서 ObjectMapper
사용
Java에서 Jackson 라이브러리의 ObjectMapper
클래스는 JSON 문자열을 구문 분석하고 자동으로 이스케이프를 해제할 수 있습니다.
import com.fasterxml.jackson.databind.ObjectMapper; public class Main { public static void main(String[] args) throws Exception { String escapedJson = "{\"message\": \"Hello, \\\"world\\\"!\\nThis is a backslash: \\\\"}"; ObjectMapper mapper = new ObjectMapper(); MyData data = mapper.readValue(escapedJson, MyData.class); System.out.println(data.getMessage()); } } class MyData { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
출력:
Hello, "world"!
This is a backslash: \
이 예제에서 ObjectMapper
는 JSON 문자열을 구문 분석하고 특수 문자의 이스케이프를 해제합니다.
Apache Commons Text에서 StringEscapeUtils
사용
또는 Apache Commons Text 라이브러리에서 StringEscapeUtils
를 사용할 수 있습니다.
import org.apache.commons.text.StringEscapeUtils; public class Main { public static void main(String[] args) { String escapedString = "Hello, \\\"world\\\"!\\nThis is a backslash: \\\\"; String unescapedString = StringEscapeUtils.unescapeJson(escapedString); System.out.println(unescapedString); } }
출력:
Hello, "world"!
This is a backslash: \
이 메서드는 전체 JSON 구문 분석 컨텍스트 외부에서 JSON 문자열의 이스케이프를 해제하는 데 유용합니다.
JSON 이스케이프 해제를 위한 온라인 도구
코드를 작성하지 않으려면 여러 온라인 도구를 사용하여 JSON 문자열의 이스케이프를 해제할 수 있습니다.
- FreeFormatter: https://www.freeformatter.com/json-escape.html
- LambdaTest: https://www.lambdatest.com/free-online-tools/json-unescape
이러한 도구를 사용하면 이스케이프된 JSON 문자열을 붙여넣고 이스케이프 해제된 버전을 즉시 얻을 수 있습니다.
결론
JSON 문자열 이스케이프 해제는 다양한 소스의 데이터를 처리할 때 일반적인 작업입니다. 대부분의 최신 프로그래밍 언어는 이 프로세스를 효율적으로 처리하기 위한 기본 제공 메서드 또는 라이브러리를 제공합니다. 이러한 도구를 이해하고 활용하면 애플리케이션이 JSON 데이터를 올바르게 해석하고 표시할 수 있습니다.
FAQs
이는 이스케이프 시퀀스(예: \n
, \"
)를 원래 문자로 다시 변환하는 것을 의미합니다.
예, Python에서 decode('unicode_escape')
또는 Java에서 Apache Commons와 같은 디코딩 함수를 사용하여 가능합니다.
예, FreeFormatter 및 LambdaTest와 같은 웹사이트에서 이 기능을 제공합니다.
Leapcell은 백엔드 프로젝트 호스팅을 위한 최고의 선택입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무제한 프로젝트를 무료로 배포
- 사용량에 대해서만 지불합니다. 요청이나 요금이 없습니다.
탁월한 비용 효율성
- 유휴 요금 없이 사용한 만큼만 지불합니다.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅
손쉬운 확장성 및 고성능
- 고도의 동시성을 쉽게 처리하기 위한 자동 확장
- 운영 오버헤드가 없으므로 구축에만 집중하십시오.
설명서에서 자세히 알아보십시오!
X에서 팔로우하세요: @LeapcellHQ