왼쪽에 JavaScript를 붙여 넣고 "Convert"를 누르세요 — JSON으로 바꿔드립니다JavaScript 붙여넣기

이 도구가 하는 일

설정 파일, 시드 스크립트, 디버거에서 JavaScript 객체 리터럴을 복사해 왔는데, 이제 진짜 JSON이 필요한 상황입니다. 문제는 JS에서는 따옴표 없는 키, 작은따옴표, 끝 쉼표, undefined, 주석, new Date(...)가 다 허용되지만 JSON에서는 전부 불법이라는 점이죠. 여기에 통째로 붙여 넣고 Convert를 누르면, JSON.parse를 빨간 줄 하나 없이 통과할 JSON이 돌아옵니다.

JSON.stringify가 따르는 규칙 그대로입니다. 키는 큰따옴표로 감싸고, 작은따옴표 문자열은 큰따옴표로 바뀌고, 끝 쉼표는 떨어져 나가고, 주석은 제거되고, undefined 값은 사라지고(네이티브 stringify와 동일), NaNInfinitynull이 되고, Date 객체는 RFC 8259에 맞춘 ISO-8601 문자열이 됩니다. ECMAScript의 숫자 포맷 규칙도 지키기 때문에 1e3은 숫자 그대로, 0x1F31이 됩니다.

Node에서 가져온 것들도 처리합니다 — module.exports = {...}, ES의 export default {...}, 단순한 const config = {...} 할당까지 전부요. 계산된 키, 단축 프로퍼티({ name }), 스프레드({ ...defaults, env: "prod" })는 모두 최종 형태로 펼쳐집니다. 중첩 객체와 배열은 그대로 유지됩니다.

사용법

다섯 줄을 붙여 넣든 설정 모듈 전체를 붙여 넣든, 세 단계면 끝납니다.

1

JavaScript 붙여 넣기 (또는 샘플 실행)

왼쪽 에디터에 코드를 넣으세요. object literal, 객체 배열, export 문, const 선언 — 파서가 전부 처리합니다. 현실적인 입력 예를 보려면 Load Sample을 눌러 보세요.

const, module.exports, export default를 일부러 떼어낼 필요는 없습니다. 주석도 그대로 둬도 됩니다 — 출력에서는 제거됩니다. JSON 타입 매핑을 다시 짚어 보고 싶다면 MDN의 JSON 레퍼런스를 참고하세요.

2

Convert 누르기

녹색 Convert 버튼을 누르세요. 도구가 JS를 파싱하고 리터럴 값을 평가한 뒤, JSON.stringify(obj, null, 2)와 똑같은 방식으로 직렬화합니다.

3

JSON 복사

오른쪽 패널에 보기 좋게 정렬된 JSON이 나옵니다. 어느 언어에서나 깔끔하게 파싱됩니다. 요청 본문, 설정 파일, Jest 스냅샷으로 그대로 복사해 가세요.

실제로 유용한 상황

API 요청 만들기

React나 Express 파일에서 가져온 객체 리터럴이 있는데 Postman이나 curl에 넣을 JSON 바디가 필요할 때. 붙여 넣고, 변환하고, 끝.

설정을 JSON으로 옮기기

<code>config.js</code> 파일에서 JSON 기반 설정 저장소로 옮기는 중이라면? export를 붙여 넣고 유효한 JSON을 받아서 그대로 집어넣으세요.

테스트 픽스처와 모크

Jest 테스트에서 쓰던 인라인 객체를 MSW, Playwright, 모크 서버용 독립 JSON 픽스처로 변환합니다.

로그와 디버거 출력

Node REPL이나 Chrome DevTools가 출력한 값(JSON이 아니라 JS 객체 문법)을 복사해서, 하류 도구들이 제대로 파싱할 수 있는 형태로 바꿉니다.

자주 묻는 질문

따옴표 없는 키와 끝 쉼표도 되나요?

네. 식별자 형태의 따옴표 없는 키는 출력에서 따옴표로 감싸지고, 작은따옴표는 큰따옴표로 바뀌고, 끝 쉼표는 떨어져 나갑니다 — ECMAScript는 허용하지만 JSON은 허용하지 않는 부분을 정리해 줍니다.

undefined, NaN, Infinity, 함수는 어떻게 되나요?

JSON.stringify와 같은 규칙입니다. undefined와 함수 값은 객체에서 빠지고, NaNInfinitynull이 되고, Symbol은 버려집니다. 전체 목록은 MDN JSON.stringify 문서를 보세요.

Date도 직렬화되나요?

네. new Date(...) 값은 ISO-8601 문자열("2026-03-14T10:30:00.000Z")로 바뀝니다. Date.prototype.toJSON()이 만드는 것과 같은 형식입니다.

ES 모듈이나 CommonJS export도 붙여 넣어도 되나요?

네 — export default { ... }, export const x = { ... }, module.exports = { ... } 전부 인식합니다. 도구가 export된 값을 추출해서 변환합니다.

스프레드 문법과 계산된 키는요?

둘 다 최종 객체 형태로 해석됩니다. { ...defaults, env: "prod" }는 병합되고, 키가 리터럴이면 { [name]: value }{ "actualName": value }가 됩니다.

제 코드가 저장되나요?

코드는 변환을 위해 백엔드로 전송되고 별도로 보관하거나 로그에 남기지 않습니다. 민감한 내용을 붙여 넣을 거라면 한 번 훑어보고 하세요.

함께 쓰면 좋은 도구

JavaScript → JSON은 전체 그림의 한 조각입니다. 같이 쓰면 잘 맞는 도구들은 이렇습니다: