본문 바로가기
프로그래밍/C#

Json 작성 시 JavaScriptEncoder.UnsafeRelaxedJsonEscaping 옵션에 대해서

by bantomak 2023. 11. 9.
반응형

JavaScriptEncoder.UnsafeRelaxedJsonEscaping 속성은?

기본 인코더와 달리 해당 속성을 적용하면  <,>,&와 같은 HTML 구분 문자를 이스케이프 하지 않는다.

 

예를 들어 출력 데이터가 UTF-8로 설정된 Content-type의 응답 내에는 사용할 수 있다.

기본 인코딩과 달리 따옴표는 \u0022가 아닌 \" 로 인코딩 된다.

 

설정하지 않으면 json 파일로 출력시에 내용이

 

>> 설정 전

#Desc": "\uD558\uD2B8 \uC120\uAE00\uB77C\uC2A41",

와 같은 식으로 출력되어서 읽을 수가 없다.

 

설정 코드

using var stream = new FileStream(outputPath, FileMode.Create);
using var writer = new Utf8JsonWriter(stream, new JsonWriterOptions() { Indented = true, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping });

 

Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping를 설정하면

 

>> 설정 후

 "#Desc": "하트 선글라스1"

로 출력되고 내용 확인이 가능해진다.

 

출처

 

[ASP.NET Core] - JsonSerializer 이용 시 escape 하지 않는 방법

들어가며 ASP.NET CORE를 이용해서 프로젝트를 진행하던 도중, 타 사업부서와의 협업으로 인해 escape 처리가 되지 않은 문자열을 가공해줘야할 경우가 생겼습니다. 이를 해결하기 위해서 사용했던

holjjack.tistory.com

'프로그래밍 > C#' 카테고리의 다른 글

C# List Sort()를 사용해서 정렬하기  (1) 2023.11.23
C# 8 : using 선언  (0) 2023.11.10
C# IDisposable에 대해서  (1) 2023.11.03
C# Convert 메서드  (0) 2023.10.12
리터럴(Literal)과 상수(Constant)에 대해서  (0) 2023.10.06

댓글