JSON를 YAML로 변환 JavaScript Object Notation ↔ YAML Ain't Markup Language 무료 온라인 안전
JSON 파일을 놓고 YAML를 가져가십시오. 읽기도 쓰기도 여기, 여러분의 브라우저 안에서 이루어지므로 파일은 기기를 떠나지 않습니다 — 그리고 건너가며 남는 것과 남지 못하는 것은 아래에 적어 두었습니다, 여러분이 겪어서 알게 되는 대신에.
파일 변환하기
여기에 JSON 파일을 놓거나 하나 고르십시오.
파일은 이 기기를 벗어나지 않습니다. 모든 처리가 브라우저 안에서 이뤄집니다.
업로드 없음
JSON 형식에서 변환
JSON 형식으로 변환
이 형식들은 어디에서 왔는가
CSV는 가장 오래되었고 가장 덜 표준화된 것입니다. 표를 글줄로 적은 것으로, 1970년대부터 쓰였으나 글로 서술된 것은 2005년이었습니다. 그때쯤에는 이미 프로그램마다 구분자가 무엇인지, 따옴표를 언제 두는지 스스로 정해 버린 뒤였습니다. XML은 1998년 SGML에서 자라났습니다. 엄한 구조를 지녀야 하고 스키마에 비추어 검사받아야 하는 문서를 위해서였습니다. JSON은 2001년 무렵 더글러스 크록퍼드가 자바스크립트에서 끄집어낸 것으로, 일부러 객체와 배열과 수와 문자열만 남기고 깎아 냈습니다. 그 덜어냄이야말로 그것이 웹을 차지한 까닭입니다. YAML은 그 읽기 좋은 사촌으로, 다른 데서 괄호가 하는 일을 들여쓰기가 맡습니다. 서로 바꿀 때 중요한 것은 오직 하나입니다. CSV는 납작한 줄과 칸의 격자이고, JSON과 XML과 YAML은 나무라는 것입니다.
어디에서 마주치는가
CSV는 표 계산이 내보내는 것이고, 회계 담당자나 상점 플랫폼이나 은행 거래 명세서가 건네주는 것입니다. JSON은 웹 서비스들이 주고받는 말이고, 설정 파일도 점점 그것으로 적힙니다. XML은 오래된 기업 체계에, 청구 표준에, 그리고 사무 형식들의 안쪽에 살아남아 있습니다. YAML은 사람이 손으로 설정을 적는 자리입니다. 이들 사이를 바꾸는 일은 자료를 만들어진 자리에서 필요한 자리로 옮기는 나날의 일입니다.
자주 묻는 질문
제 CSV가 엑셀에서 한 칸으로 열렸습니다. 왜인가요?
표 계산이 다른 구분자를 기다리고 있었기 때문입니다. 엑셀은 컴퓨터 지역 설정의 목록 구분자를 따릅니다. 쉼표가 이미 소수점 노릇을 하는 곳에서는 그것이 쌍반점입니다. 곧 유럽 대륙의 많은 곳입니다. 그러면 쉼표로 나뉜 파일이 한 칸의 글줄처럼 보입니다. 파일을 두 번 눌러 여는 대신, 가져오기 창을 쓰고 구분자를 분명히 말해 주십시오. 3.5가 때때로 날짜로 도착하는 것도 같은 지역 설정 탓입니다.
중첩된 제 JSON은 왜 말끔한 표 계산이 되지 않나요?
표 계산은 납작하고 JSON은 나무이기 때문입니다. 한 줄은 칸마다 값 하나를 담습니다. JSON 객체는 어떤 밭 안의 목록 안에 또 목록을 담을 수 있습니다. 바꾼다는 것은 그것을 어떻게 납작하게 두드릴지 고르는 일입니다. 중첩된 이름들을 한 줄의 긴 칸 머리글로 잇거나, 어버이 줄을 자식 수만큼 되풀이하거나. 둘 다 양보이고, 어느 쪽도 저절로는 되돌릴 수 없습니다. 표 계산에서 본디 모습으로 돌아가는 데 대개 사람의 결정이 필요한 까닭이 그것입니다.
파일의 질이 떨어지나요?
두 형식이 무엇을 담을 수 있느냐에 달렸습니다. 같은 것을 담는 형식 사이의 변환 — PNG에서 BMP로, WAV에서 FLAC으로 — 은 아무것도 잃지 않습니다. 자리를 아끼려고 정보를 버리는 형식, 이를테면 JPEG이나 MP3으로 바꾸면 할 때마다 조금씩 잃고, 되돌려도 돌아오지 않습니다. 고를 수 있는 자리에서 이 쪽은 가장 작은 파일을 만들기보다 본디의 질을 지키는 쪽으로 기웁니다.
제 파일이 어딘가로 올라가나요?
아니요. 변환은 여러분의 기계 위, 여러분의 브라우저 안에서 이루어집니다. 파일은 그곳을 떠나지 않으며, 여기에는 그것을 받을 서버도 없습니다. 큰 파일을 가로막는 것이 업로드가 아니라 여러분 자신의 기억 장치인 까닭, 여러분이 변환한 어떤 것도 누구의 기록에도 — 우리의 기록에도 — 나타날 수 없는 까닭이 그것입니다. 다만 소리와 영상 도구는 처음 쓸 때 변환 기관을 이곳에서 받아 옵니다. 삼십 메가바이트쯤, 한 번뿐입니다. 그 뒤로도 일은 모두 여러분의 기계 위에서 이루어집니다.
사람들이 JSON을 YAML로 변환하는 이유
JSON은 프로그램이 좋아하는 표기법입니다. 엄격하고, 간결하고, 모든 언어가 이해합니다. 하지만 사람에게는 친절하지 않습니다. 긴 JSON 파일은 중괄호, 대괄호, 따옴표, 쉼표의 덤불이며 주석을 쓸 자리가 없고, 끝에 붙은 쉼표 하나가 모든 것을 망가뜨릴 수 있습니다. YAML은 사람이 데이터를 직접 읽고 편집해야 할 때 고르는 표기법입니다. 중괄호 대신 들여쓰기를 쓰고, 주석을 허용하며, 개요처럼 읽히기 때문에 빌드 파이프라인, 컨테이너 정의, 배포 파일, 정적 사이트와 문서화 도구의 설정 같은 구성 파일의 단골이 되었습니다. 데이터가 JSON으로 도착했는데 읽기 좋은 형태로 다루고 싶다면 변환이 필요합니다. 그래서 사람들이 JSON을 YAML로 변환합니다.
상황은 일상적입니다. 도구의 출력이 JSON인데 그것을 구성 파일로 바꾸고 싶은 개발자. 설정을 한 시스템에서 다른 시스템으로 옮기며 읽기 쉬운 형식을 선호하는 팀. 어지러움 없이 API 응답의 구조를 읽고 싶은 작성자. 중괄호가 들여쓰기에 어떻게 대응하는지 보고 싶은 학생. 어느 경우든 데이터는 같고 표기법만 바뀝니다.
이 페이지는 브라우저에서 JSON을 YAML로 변환합니다. 파일은 여기서 읽고 쓰이므로 기기를 떠나지 않아 주소, 내부 시스템 이름, 때로는 비밀을 담고 있는 구성 파일에 중요한 점입니다. 그리고 페이지는 이 변환이 무엇을 유지하고 무엇을 유지하지 못하는지를 직접 알아내게 두는 대신 미리 알려 줍니다. 아래에서 변환이 어떻게 작동하는지, 깊은 중첩과 긴 문자열은 어떻게 되는지, 깔끔한 결과를 얻는 방법을 보실 수 있습니다.
변환이 작동하는 방식
두 표기법에서 같은 모양
JSON은 브라우저 안에서 읽고 그 구조가 YAML로 쓰입니다. 둘은 같은 모양을 담고 있으며 양방향으로 모든 것이 유지됩니다. 맵, 목록, 문자열, 숫자, 불리언, null입니다. JSON의 객체는 YAML의 매핑이 되고, 배열은 시퀀스가 되며, 스칼라 값은 형식을 유지합니다. 숫자 8080을 가진 키 port는 port: 8080을 주고, true를 가진 키 enabled는 enabled: true를 줍니다.
반복되는 구조는 전부 풀어서 씁니다
YAML에는 앵커와 별칭으로 반복을 피하는 방법이 있습니다. 변환기는 이를 쓰지 않습니다. 반복되는 구조는 앵커가 아니라 전부 풀어서 쓰이므로 파일은 위에서 아래로 곧장 읽힙니다. 이 때문에 YAML이 조금 길어지지만 어디서도 다른 곳을 찾아볼 필요가 없고, 어떤 독자든 블록 하나하나를 그 자체로 이해할 수 있습니다.
키는 순서를 유지합니다
키는 JSON에 있던 순서를 유지합니다. YAML은 원본과 같은 순서로 읽히므로 JSON을 아는 사람은 곧바로 길을 찾습니다.
유지되는 것
데이터인 모든 것
양방향으로 모든 것이 유지됩니다. 맵, 목록, 문자열, 숫자, 불리언, null입니다. JSON에서 값이었다면 YAML에서도 같은 형식의 값입니다.
보호가 필요한 문자열
일부 문자열은 그냥 쓰면 YAML에서 잘못 읽힙니다. 단어 true, 따옴표 안의 숫자, 콜론이 든 글입니다. 변환기는 이런 문자열을 따옴표로 묶어서 문자열로 돌아오고 불리언이나 숫자로 바뀌지 않게 합니다. "true"라고 적힌 JSON 문자열은 YAML에서도 문자열로 남습니다.
유니코드
악센트가 있는 글자, 기호, 다른 알파벳의 문자는 있는 그대로 유지되므로 여러 언어로 된 파일도 읽을 수 있게 남습니다.
JSON을 YAML로 변환하기 전에 알아야 할 것
깊은 중첩은 깊은 들여쓰기를 뜻합니다
YAML은 들여쓰기에 의미를 두므로 깊이 중첩된 값은 깊이 들여쓰인 파일이 됩니다. 읽을 수는 있지만 짧지는 않습니다. 여덟 단계의 JSON 트리는 왼쪽 여백에서 멀리 떨어져 시작하는 줄을 줍니다. 감당하기 어려워지면 원본에서 구조를 평평하게 만드는 것을 고려하십시오.
긴 문자열은 줄바꿈됩니다
긴 문자열은 약 백 열에서 줄바꿈되는데, 값을 바꾸지 않고 줄이 나뉘는 위치만 바뀝니다. JSON에서 긴 한 줄이었던 문단은 YAML에서 여러 줄에 걸쳐 나타나지만 같은 글입니다. YAML을 읽는 프로그램은 원래의 문자열을 받습니다.
주석은 지어낼 수 없습니다
YAML은 주석을 허용하지만 JSON에는 주석이 없으므로 결과에도 없습니다. 나중에 직접 설명을 더할 수 있으며, 이것이 애초에 파일을 YAML로 갖는 주된 이유의 하나입니다.
여기서 JSON을 YAML로 변환하는 방법
파일을 추가하세요
JSON 파일을 페이지에 놓거나 기기에서 고르십시오. 브라우저 안에서 읽으며 업로드되지 않습니다.
변환하세요
버튼을 누르십시오. 보통 크기의 파일은 잠깐이면 됩니다. 끝날 때까지 페이지를 열어 두십시오.
내려받아 확인하세요
YAML을 내려받아 텍스트 편집기에서 여십시오. 시작과 끝을 보고 구조와 형식이 기대한 대로인지 확인하십시오.
JSON과 YAML을 자세히 보기
같은 데이터의 두 표기법
JSON은 프로그램이 읽고 쓰기 쉽도록 설계되었습니다. YAML은 사람이 쉽도록 설계되었습니다. 둘은 JSON이 거의 YAML의 부분집합일 만큼 겹치며, YAML 판독기는 보통 JSON을 읽을 수 있습니다. 그러므로 JSON을 YAML로 변환하는 것은 데이터를 바꾸는 것이 아니라 메모를 위한 자리가 있고 문장 부호의 어수선함이 없는 형태로 다시 입히는 것입니다.
들여쓰기에 주의가 필요한 이유
YAML은 들여쓰기에 의존하므로 어긋난 줄은 의미를 바꿉니다. 변환기는 공백으로, 단계마다 같은 너비로 들여쓰기를 일관되게 쓰므로 파일은 만들어진 그대로 올바릅니다. 나중에 편집할 때는 같은 너비를 유지하고, YAML이 들여쓰기에 허용하지 않는 탭을 피하십시오.
읽기 쉽지만 항상 짧지는 않습니다
YAML은 중괄호와 키 둘레의 따옴표를 없애므로 JSON보다 간결하다고 흔히 말합니다. 평평한 데이터에는 사실입니다. 깊이 중첩된 데이터에서는 들여쓰기가 글자 수로는 더 길게 만들 수 있습니다. 이득은 크기가 아니라 가독성에 있습니다.
자세히 보는 흔한 상황
도구의 출력을 구성 파일로 바꾸기
도구는 설정이나 결과를 JSON으로 출력하는 경우가 많습니다. JSON을 YAML로 변환하고, 주석을 더하고, 사람이 관리하는 구성 파일로 보관하십시오.
시스템 사이에 설정 옮기기
JSON을 쓰는 시스템에서 YAML을 쓰는 시스템으로 구성을 옮기는 일은 변환 한 번에 대상이 키를 받아들이는지 확인하는 일이 따릅니다.
API 응답 읽기
API의 응답은 수백 줄의 중괄호로 이어질 수 있습니다. YAML에서는 같은 데이터가 개요처럼 읽혀서 구조를 한눈에 볼 수 있습니다.
교육과 문서화
같은 데이터를 두 표기법으로 보여 주는 것은 구조화된 데이터가 어떻게 작동하는지 가르치는 좋은 방법입니다. YAML 예시를 쓰는 문서는 읽기 쉬운 경우가 많습니다.
JSON을 YAML로 변환하기 전의 실용적인 조언
JSON이 유효한지 확인하세요
떠돌이 쉼표나 빠진 따옴표가 변환을 멈추게 합니다. 페이지가 오류를 알리면 JSON 문제를 강조 표시하는 편집기에서 파일을 열어 가리키는 줄을 고치십시오.
할 수 있는 곳은 평평하게 하세요
구조가 필요 이상으로 깊다면 먼저 단순하게 하십시오. 더 평평한 구조는 읽고 편집하기 더 쉬운 YAML을 줍니다.
소비자를 생각하세요
YAML을 읽을 것이 무엇인지 보십시오. 일부 도구는 특정한 키 이름과 형식을 기대하며, 나중에 YAML을 고치는 것보다 미리 JSON을 조정하는 편이 쉽습니다.
큰 파일
모든 것이 당신의 기기에서 실행되므로 아주 큰 파일에는 메모리가 필요합니다. 수 메가바이트의 파일이라면 컴퓨터를 쓰고, 페이지가 버거워하면 데이터를 나누십시오.
변환하기 전에 사람들이 묻는 질문
내 데이터가 바뀌나요?
아니요. 양방향으로 모든 것이 유지됩니다. 맵, 목록, 문자열, 숫자, 불리언, null입니다.
왜 긴 문자열이 여러 줄로 나뉘나요?
긴 문자열은 약 백 열에서 줄바꿈됩니다. 값을 바꾸지 않고 줄이 나뉘는 위치만 바뀝니다.
왜 파일이 이렇게 들여쓰여 있나요?
데이터가 깊이 중첩되어 있고 YAML은 중첩을 들여쓰기로 표현하기 때문입니다.
앵커는 어디에 있나요?
반복되는 구조는 앵커가 아니라 전부 풀어서 쓰이므로 파일은 위에서 아래로 곧장 읽힙니다.
파일이 업로드되나요?
아니요. 변환은 브라우저에서 실행되며 파일은 기기를 떠나지 않습니다.
JSON으로 되돌아갈 수 있나요?
네. YAML을 JSON으로가 파일을 다시 읽어 주지만 더한 주석은 살아남지 않습니다.
JSON을 YAML로 변환할 때의 현명한 선택
정말 YAML이 필요한가?
받는 도구가 JSON을 읽는다면 JSON을 유지하십시오. 사람이 파일을 읽고 편집해야 하거나 도구가 YAML을 요구할 때 변환하십시오.
다른 목적지
목적지가 마크업 파일이라면 JSON을 XML로가 이어질 수 있습니다. 표에는 JSON을 CSV로와 JSON을 XLSX로가 스프레드시트에 쓰입니다.
JSON을 보관하세요
JSON이 프로그램에서 나온다면 JSON이 마스터입니다. 그것을 보관하고 바뀌면 YAML을 다시 만드십시오.
변환 뒤에 좋은 결과를 얻기
주석을 더하세요
결과에는 주석이 없으며 바로 여기가 YAML이 빛나는 곳입니다. 각 블록 위에 그것이 무엇을 하는지, 어떤 값이 허용되는지 짧은 메모를 더하십시오.
형식을 확인하세요
버전, 코드, 플래그 같은 값을 보십시오. 문자열이어야 할 곳은 문자열이고 숫자여야 할 곳은 숫자인지 확인하십시오.
들여쓰기를 일관되게 유지하세요
편집할 때는 공백을 쓰고 단계마다 같은 너비를 유지하십시오. 공백을 보여 주고 YAML을 검사하는 편집기가 오류에서 지켜 줄 것입니다.
잘 변환되도록 JSON 준비하기
규칙적으로 유지하세요
JSON을 YAML로 변환할 때는 규칙적인 데이터가 가장 잘 변환됩니다. 일관된 키와 분명한 형식입니다. 불규칙한 데이터는 올바르지만 지저분한 결과를 줍니다.
키 이름을 분명히 짓세요
사람들이 YAML을 읽을 것이므로 의미를 말해 주는 키를 고르십시오. 구성은 이름이 쉬울수록 관리하기 쉽습니다.
먼저 작은 조각으로 시험하세요
파일이 크다면 한 부분을 시험 파일에 가져와 변환하십시오. 결과를 잠깐 보면 구조가 기대한 대로인지 알 수 있습니다.
JSON을 YAML로 변환한 뒤 YAML 다루기
JSON이 담지 못한 메모를 더하세요
갓 변환한 파일로 가장 먼저 할 일은 위에서부터 읽으며 낯선 사람이 당황할 곳에 주석을 더하는 것입니다. 구역이 무엇을 제어하는지 말해 주는 위쪽의 짧은 한 줄은 다른 곳에 보관한 한 쪽의 문서보다 값어치가 있는데, 설명하는 대상 곁에 있기 때문입니다. 이것이 JSON을 YAML로 변환할 때 얻는 가장 큰 이점입니다.
관련 설정을 묶으세요
키는 JSON에 있던 순서를 유지하며, 이는 프로그램이 우연히 내보낸 순서일 수 있습니다. YAML에서는 관련 설정이 함께 있도록 재배열하고 그룹 사이에 빈 줄을 두어도 됩니다. 매핑의 키 순서는 대부분의 판독기에게 의미가 없으므로 안전하지만, 쓰는 도구가 순서에 신경 쓰는지 확인하십시오.
받는 도구가 기대하는 것을 확인하세요
유효한 YAML 파일이 반드시 유효한 구성은 아닙니다. 도구는 특정한 키와 형식을 기대하며 일부는 알 수 없는 키에 엄격합니다. 변환 뒤에 파일을 도구의 문서와 비교하고, 검사기가 있다면 실행하십시오.
버전 관리를 쓰세요
YAML의 구성은 줄 단위로 비교하기 쉬워서 버전 관리에 잘 맞습니다. 변환한 파일을 커밋하면 동료들이 변경을 분명한 차이로 볼 수 있는데, 압축된 한 줄 JSON에서는 훨씬 어려웠습니다.
비밀에 유의하세요
도구에서 내보낸 JSON에는 토큰과 비밀번호가 들어 있기도 합니다. 변환이 브라우저에서 이루어지므로 아무것도 기기를 떠나지 않지만 YAML 파일에는 같은 비밀이 들어 있습니다. 커밋하거나 공유하기 전에 지우거나 더 안전한 곳으로 옮기십시오.
편집할 때 들여쓰기를 지켜보세요
직접 편집하기 시작하면 주된 위험은 공백 하나가 어긋난 줄입니다. 공백을 보여 주고 입력하는 동안 YAML을 검사하는 편집기를 쓰고, 변환기가 그랬듯이 단계마다 같은 너비를 유지하십시오.
원본이 바뀌면 다시 변환하세요
JSON이 프로그램에서 만들어져 때때로 바뀐다면 새 버전마다 JSON을 YAML로 다시 변환하고 옛 파일의 주석을 새 파일에 합치십시오. 비교 도구가 있으면 몇 분이면 됩니다.
개인정보와 처리
구성에 로컬 변환이 중요한 이유
구성 파일은 흔히 주소, 내부 시스템 이름, 때로는 키와 비밀번호를 담고 있습니다. 많은 온라인 변환기는 파일을 서버에 올려 처리한 뒤 결과를 돌려보내며, 한동안 사본이 당신이 통제하지 못하는 기계에 남습니다. 여기서는 당신의 브라우저가 일을 하므로 파일이 기기에 남습니다.
떠날 때 일어나는 일
페이지를 닫으면 변환된 파일이 브라우저에서 사라지므로 먼저 내려받으십시오. 파일에 대한 어떤 것도 보관되지 않습니다.
문제가 생겼을 때
페이지가 JSON이 유효하지 않다고 말합니다
떠돌이 쉼표, 빠진 따옴표, 닫히지 않는 괄호가 있을 수 있습니다. JSON 오류를 강조 표시하는 편집기에서 파일을 열어 가리키는 줄을 고치십시오.
도구가 YAML을 거부합니다
도구가 기대하는 키 이름과 형식을 확인하십시오. YAML은 유효하지만 도구가 다른 이름이나 다른 구조를 원할 수 있습니다.
큰 파일에서 페이지가 멈춥니다
모든 것이 기기에서 실행되며 큰 파일에는 메모리가 필요합니다. 컴퓨터에서 다시 시도하거나 데이터를 나누십시오.
관련 도구
같은 계열의 도구가 이웃한 일들을 다룹니다. 되돌아가려면 YAML을 JSON으로를 쓰십시오. 마크업에는 JSON을 XML로와 XML을 JSON으로가 둘 사이를 변환합니다. 표에는 JSON을 CSV로, CSV를 JSON으로, JSON을 XLSX로, XLSX를 JSON으로가 있습니다.
풀이한 예시
도구가 설정을 150줄의 JSON 파일로 출력하고, 동료들이 읽고 주석을 달 수 있는 구성으로 저장소에 보관하고 싶다고 해 봅시다. 여기에 파일을 놓고 버튼을 누릅니다. 잠시 뒤 구조가 개요처럼 읽히는 약 90줄의 YAML을 내려받습니다. 구역마다 위에 주석을 달고, 커밋하고, 팀에 어디서 편집하는지 알립니다. JSON은 도구의 출력으로 남습니다.
짧은 점검표
변환하기 전에
JSON이 유효한지 확인하십시오. 할 수 있다면 깊은 중첩을 단순하게 하십시오. JSON을 보관하십시오.
변환하는 동안
파일이 준비될 때까지 페이지에 머무르십시오.
변환한 뒤에
YAML을 열고, 구조와 형식을 확인하고, 주석을 더하고, 그것을 읽을 도구로 시험해 보십시오.
흔한 실수
더 짧은 파일을 기대하는 것
깊은 중첩은 깊은 들여쓰기를 만듭니다. YAML은 더 읽기 쉬울 뿐 항상 더 작지는 않습니다.
탭으로 편집하는 것
YAML은 들여쓰기에 탭을 허용하지 않습니다. 공백을 쓰십시오.
원본을 잃는 것
JSON이 프로그램에서 나온다면 보관하고 바뀌면 YAML을 다시 만드십시오.
파일은 기기에 남습니다
변환은 로컬에서 이루어집니다. 파일은 당신의 브라우저가 읽어 그 안에서 다시 쓰고 YAML로 돌려줍니다. 아무것도 업로드되지 않으므로 서버에 사본이 남지 않고 다른 누구도 읽을 수 없습니다. 사적인 내용이 든 구성에는 그것이 JSON을 YAML로 변환하는 안전한 방법입니다.
요약
여기서 JSON을 YAML로 변환하려면 파일을 놓고 버튼을 누르십시오. 브라우저에서 읽고 쓰이므로 파일은 기기를 떠나지 않습니다. 양방향으로 모든 것이 유지됩니다. 맵, 목록, 문자열, 숫자, 불리언, null입니다. 반복되는 구조는 앵커가 아니라 전부 풀어서 쓰이므로 파일은 위에서 아래로 곧장 읽힙니다. YAML은 들여쓰기에 의미를 두므로 깊이 중첩된 값은 깊이 들여쓰인 파일이 되며, 읽을 수는 있지만 짧지는 않습니다. 긴 문자열은 약 백 열에서 줄바꿈되는데, 값을 바꾸지 않고 줄이 나뉘는 위치만 바뀝니다. 키는 JSON에 있던 순서를 유지합니다.