개발자

JSON.stringify에 대해 궁금합니다!

2023년 06월 14일조회 503

api통신할 때 아래와 같이 “”안에 string으로 JSON문자열을 그대로 넣어서 보내고 있는데 { check_list: JSON.stringify(check_list.value) } 키값 앞뒤로 /“ 이게 왜 붙는걸까요? 없애려면 어떻게 해야하나요? -현재 { “check_list”: “[{\“check_id\“:80,\“file_id\“:24076,\“checked\“:true}, {\“check_id\“:84,\“file_id\“:24077,\“checked\“:true}, {\“check_id\“:81,\“file_id\“:24079,\“checked\“:true}]“ } -원하는 값 { “check_list”: “[{check_id:80,file_id:24076,checked:true}, {check_id:84,file_id:24077,checked:true}, {check_id:81,file_id:24079,checked:true}]“ }

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

이승로님의 프로필 사진

백슬래시(\)는 이스케이프 문자입니다! 이스케이프 문자란, 문자열 안에서 ‘다음에 오는 문자는 특수문자에용’ 역할을 하는 문자입니다. 문자열을 다루다 보면 가장 흔히 볼 수 있는 이스케이프가 바로 \“ 인데요, 쉽게 생각해서 쌍따옴표에 이스케이프가 붙는 이유는, 프로그래밍 언어가 문자열을 표시할 때, 쌍따옴표(혹은 따옴표)가 붙기 때문입니다. 만약 이스케이프가 없다면, 프로그래밍 언어를 해석하면서 쌍따옴표가 나올 때마다, 이게 문자열 안의 따옴표인지, 문자열 값을 나타내기 위한 쌍따옴표인지 알 수가 없을 것입니다. 또한, JSON 표기 문법 상, 모든 키 값에는 쌍따옴표를 붙입니다. 즉, 객체를 stringify 하는 과정에서 키에 해당하는 값에 쌍따옴표가 붙고, 이것을 출력하는 과정에서 이스케이프 문자가 함께 출력 된 것입니다. 만약 쌍따옴표를 삭제하고 싶으시다면, 정규식을 사용하시면 될 것 같습니다!

1JSON.stringify(check_list.value).replace(/\"([^\"]+)\"\:/g, (_, key) => `${key}:`);
이영준님의 프로필 사진

json stringify에 옵션이 없어서 라이브러리쓰거나 직접 결과의 key에서 “를 삭제해야할 것 같아요 참고로 key에 ”가 없으면 올바른 JSON이 아니래요

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!