데이터 포맷 변환 (YAML·JSON·TOML·XML·CSV)

브라우저 안에서만 처리됩니다. 입력한 내용과 선택한 파일은 서버로 전송되지 않습니다. 익명 방문 통계만 집계합니다.

JSON

포맷을 고르고 내용을 붙여넣은 뒤 변환 버튼을 누르세요.

사용법

  1. 입력 포맷과 출력 포맷을 고릅니다. JSON·YAML·TOML·XML·CSV 다섯 가지입니다.
  2. 내용을 붙여넣습니다. 문법이 틀리면 몇 번째 줄인지 알려 주므로 그 줄만 고치면 됩니다.
  3. 변환하면 사라지는 정보가 있으면 변환 버튼을 누르기 전에 무엇이 사라지는지 먼저 보여줍니다. 되돌릴 수 없는 조합은 버튼이 잠기고, 일부만 사라지는 조합은 내용을 확인하고 동의해야 진행됩니다.
  4. 변환 버튼을 눌러 결과를 확인하고 복사해서 씁니다.

자주 묻는 질문

YAML 문서가 여러 개(---)면 어떻게 되나요?

배열로 묶어서 JSON 하나로 만듭니다. 첫 문서만 쓰고 나머지를 버리면 쿠버네티스 매니페스트처럼 --- 로 여러 리소스를 이어 쓴 파일에서 내용이 조용히 사라지기 때문입니다. 문서가 하나면 배열로 감싸지 않고 그대로 냅니다.

앵커(&)와 별칭(*), 병합 키(<<)도 처리되나요?

됩니다. 별칭은 참조한 값으로 펼치고, `<<: *anchor` 형태의 병합 키도 실제 키로 펼쳐 줍니다. 엄밀히 말하면 병합 키는 YAML 1.2 코어 스키마에 없는 문법이지만, docker-compose 와 GitLab CI 설정에서 워낙 많이 쓰여서 펼치는 쪽으로 맞췄습니다.

YAML 에서 no 나 on 이 true/false 로 바뀌지 않나요?

바뀌지 않습니다. YAML 1.1 에서는 no·off 가 false, yes·on 이 true 로 해석돼서 국가 코드 no(노르웨이)가 false 가 되는 유명한 함정이 있었습니다. 이 도구는 YAML 1.2 로 읽으므로 true 와 false 만 불리언이고 나머지는 문자열로 남습니다.

JSON 을 YAML 로 바꿀 때 긴 줄이 접히나요?

접지 않습니다. 라이브러리 기본값은 80자에서 줄을 접는데, URL 이나 명령줄이 중간에 접히면 읽기도 나쁘고 다시 붙여넣을 때 실수가 납니다. 그래서 줄바꿈 없이 그대로 냅니다.

입력한 내용이 서버로 가나요?

가지 않습니다. 변환은 전부 브라우저 안에서 일어납니다. 설정 파일에는 호스트명이나 내부 경로가 들어 있는 경우가 많은데, 그런 것을 남의 서버에 올리지 않아도 되도록 만들었습니다.

CSV 로 못 바꾼다고 나오는 이유는 뭔가요?

CSV 는 표(행·열) 형태만 표현할 수 있습니다. 그래서 값이 "객체로 이루어진 배열" 이 아니거나, 그 객체 안에 또 다른 객체·배열이 중첩돼 있으면 변환할 방법이 없습니다 — 열 하나에 표 하나를 통째로 욱여넣을 수는 없기 때문입니다. 이런 경우 변환 버튼이 잠기고 이유가 표시됩니다. 반대로 중첩 없이 평평한 객체 배열이면(예: 사용자 목록) 손실 없이 바뀝니다.

XML 로 바꾸면 배열이 사라진다는 게 무슨 뜻인가요?

XML 은 같은 이름의 태그가 여러 번 나오면 배열로 읽지만, 딱 하나만 나오면 그냥 단일 값으로 읽습니다. 그래서 원래 길이가 1개짜리 배열이었던 값을 XML 로 냈다가 다시 읽어 들이면, 배열이었는지 원래 단일 값이었는지 XML 만 보고는 구분할 수 없어서 배열이 아닌 값으로 돌아옵니다. 길이가 2개 이상인 배열은 이 문제가 없습니다(태그가 반복되므로 배열로 정확히 복원됩니다). 이 경우는 되돌릴 수 없는 게 아니라 "일부 정보가 사라지는" 경우라, 무엇이 사라지는지 보여준 뒤 동의하면 진행할 수 있습니다.