CodeSOD: JSON 직렬 변환기 노트

CodeSOD: JSON 직렬 변환기

캐롤의 코드는 문자열을 수동으로 구성하여 JSON 직렬화를 수행하는 좋지 않은 방식을 보여줍니다. 이 방법은 오류가 발생하기 쉽고, C#은 내장된 JSON 직렬화 기능을 제공하므로 불필요합니다. 이 코드는 문자열 표현을 검사하여 직렬화할 데이터 유형을 추론하려고 시도합니다. 특히 튜플을 처리하기 위해 괄호를 대괄호로 변환합니다. 또한 값을 숫자 또는 부울로 파싱하여 JSON 표현을 결정하려고 시도합니다. 다른 모든 값은 문자열로 처리되어 따옴표로 묶입니다. 치명적인 결함은 문자열 내의 문자에 대한 적절한 이스케이핑이 부족하여 데이터에 따옴표가 나타날 경우 잘못된 형식의 JSON을 생성할 수 있다는 것입니다. 또한 이 코드는 JSON 문자열에 추가 쉼표가 추가되어 조건부 검사로 제거되는 버그가 있습니다. 이러한 수동적인 문자열 조작은 좋지 않은 관행의 징후입니다. 개발자는 JSON 직렬화와 같은 작업에 항상 기존 라이브러리 또는 언어 기능을 활용해야 합니다. 정말로 복잡한 코드 생성이 필요한 경우, 먼저 구문 트리를 구축하는 것이 올바른 접근 방식입니다.