Json파일을 문자열로 조합하여 잘 사용하고 있었는데, 어느 순간 역슬래쉬가 들어오면서 에러가 발생하였다.
Json문자열에 이런 특정 문자가 들어왔을 때,
즉, Json파일에 오류가 생기게 하는 문자를 처리하는 방법을 알아보도록 하자.
■ Json 파일 만드는 법
1. 직접 문자열 조립
- 데이터에 역슬래시(\), 따옴표("), 개행(\n), 탭(\t) 등이 들어 있으면 JSON 문법상 이스케이프 처리가 안 되어 있어 오류
string json = $"{{\"NAME\":\"좌표\", \"X\":{100}, \"Y\":{100}}}";
json = JsonConvert.DeserializeObject(json).ToString(); # Newtonsoft.Json 패키지 설치 필요
# 변수 json 출력
{
"NAME": "좌표",
"X": 100,
"Y": 100
}
2. JsonSerializer로 생성 (System.Text.Json 사용)
- System.Text.Json.JsonSerializer 가 내부적으로 모든 문자를 안전하게 이스케이프 처리
var options = new JsonSerializerOptions
{
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
WriteIndented = true
};
var data = new
{
NAME = "좌표",
X = 100,
Y = 100
};
string json = JsonSerializer.Serialize(data, options);
# 변수 json 출력
{
"NAME": "좌표",
"X": 100,
"Y": 100
}
3. 결론은 직접 문자열 조립은 위험하므로, 이스케이프 처리가 되는 JsonSerializer를 사용한다.
'C#' 카테고리의 다른 글
| 프로그램 실행 시, Font 자동 설치하는 방법 (0) | 2025.10.15 |
|---|---|
| C# sFTP 접속 소스 및 Download, Upload (WinSCP 사용) (1) | 2025.08.10 |
| Visual Studio 버전 타임라인 (3) | 2025.07.19 |
| C# 오라클 커넥션 (Oracle Connection) 종류 (0) | 2025.06.15 |
| VS 2005 (.NET 2.0, C# 2.0)의 주요 특징 (0) | 2025.04.20 |