企评社

라벨은 한국어(으)로 표시됩니다. 기업 리뷰, 게시판, 도구 설명은 현재 중국어로만 제공됩니다.

YAML 변환

YAML ↔ JSON · YAML → Properties · 여러 문서, 앵커, 행과 열 오류 표시

转换全部在你的浏览器里完成,配置内容不上传、不留存
转换不是无损的,先知道会丢什么。 YAML 的注释在 JSON / Properties 里没有任何对应位置,转换后一定丢失;锚点与别名(&x / *x)在解析阶段就展开成真实值,转换后每个引用点都是独立副本(数据等价,体积变大);缩进、引号风格、块标量(| 与 >)这些书写形式不会原样保留;YAML 里的日期会被识别成时间戳、转成 ISO 字符串,.inf / .nan 因为 JSON 没有这两个值会变成 null。如果你要的是"把 YAML 存回去还跟原来一模一样",本页做不到,任何转换工具都做不到。

입력

粘贴 YAML

选项切换方向后选项会跟着变

YAML 的锚点与别名在解析阶段就展开成真实值,所以这里没有「保留引用」开关——JSON 里也没有引用这个概念。为什么没有 noRefs 开关:js-yaml 的 noRefs 只对「含共享引用的 JS 对象」生效,而本页输入是文本(YAML 锚点已被展开、JSON 没有引用语义),开关不会产生任何可观察差异,故不提供。

行宽只影响长字符串的换行方式:超过行宽时 js-yaml 会用折叠块(>-)折行。语义不变,但看起来会和你手写的 YAML 不一样。

嵌套对象用点连接(spring.datasource.url)。只有一份文档能转:多文档(---)没有对应的键值形式,会明确报错。空对象与空数组在 .properties 里无法表示,会被跳过并在结果里计数。

粘贴内容后会自动转换

결과

类型边界:YAML 会把这些写成什么

本页按 YAML 1.2 的 core schema 解析(js-yaml 4.x 默认行为)。下面每一条都是本页实测结果,不是"按印象写的":

YAML 写法解析成转成 JSON
true / false / True / TRUE布尔true / false
yes / no / on / off / YES字符串"yes" 等——YAML 1.2 里这些不是布尔(1.1 才是)
007数字 77(不是八进制;八进制要写 0o17)
0x1F数字 3131
1e3数字 10001000
00123 这类要保留前导零的编号数字 123123——要保号请写成 "00123"(带引号)
2024-01-02 / 2024-01-02 03:04:05时间戳(Date)"2024-01-02T00:00:00.000Z"(ISO 字符串)
~ / null / 空值nullnull
.inf / -.inf / .nan±Infinity / NaNnull——JSON 没有这两个值,信息会丢
123456789012345678901234567890双精度近似值1.2345678901234568e+29——长 ID 请写成字符串
"007"(带引号)字符串 "007""007"
块标量 |保留换行的字符串带 \n 的字符串
块标量 >换行折叠成空格单行字符串

자주 묻는 질문

YAML 을 JSON 으로 바꾸면 주석이랑 앵커는 어디로 가요?

사라지거나 펴져요. YAML 주석은 사람 보라고 두는 건데 JSON 에는 주석 개념이 아예 없어요—바꾸면 반드시 사라져요. '설정은 YAML, 데이터 전송은 JSON'으로 나누는 이유 중 하나예요. 앵커와 별명 (&x / *x) 은 읽는 단계에서 실값으로 펴지고, 모든 참조가 각자 독립 복사가 돼요—데이터는 같은데 크기는 늘고 재사용 관계는 안 남아요. 여러 문서 (--- 로 나눔) 는 순서대로 JSON 배열이 되고, 문서 수만큼 요소가 들어가요.

yes / no / on / off 가 true / false 가 아니라 문자열로 나오는 건 왜요?

이 페이지는 YAML 1.2 핵심 스키마 (js-yaml 4.x 기본 동작) 를 써요—참거짓은 true / false (True / False / TRUE / FALSE 까지) 뿐이고, yes / no / on / off 같은 YAML 1.1 시절 표기는 그냥 문자열이에요. 같은 이유로 007 은 숫자 7 (8 진수 아님), 0x1F 는 31, 2024-01-02 같은 날짜는 시각표로 인식돼 JSON 에서 ISO 문자열이 되고; .inf / .nan 은 YAML 에선 숫자이나 JSON 에 그런 값이 없어 null 로 바뀝니다—이 경계들은 전부 페이지 위쪽 표에 조항별로 적어 뒀어요.

.properties 로 바꿀 때 중첩이랑 배열은 키가 어떻게 돼요?

납작한 키 경로로 만들어요—중첩은 점으로 잇고 (spring.datasource.url), 배열은 기본이 대괄호 번호 (list[0], list[1]; 배열 안 객체는 그대로 점 연결, users[0].name 등), 점 번호 (list.0) 로도 바꿔요. 값 속 역슬래시·줄바꿈·탭·앞쪽 공백은 java.util.Properties 규칙대로 풀어쓰고, 중국어는 기본 그대로 둬요 (Java 8 이후 UTF-8 로 읽기 문제없어요), 오래된 도구용으론 '중국어 \uXXXX 바꾸기' 체크가 있어요. 빈 객체·빈 배열은 .properties 에 표기법이 없어서 건너뛰어지고 결과에 개수로 밝혀져요.

설정 올라가요? Properties 에서 YAML 로 역변환도 돼요?

안 올라가요. 풀이·변환·생성 전부 브라우저에서 끝나요—설정 내용이 기기 밖 안 나가고 새로고침하면 지워지고, 네트워크 요청은 하나도 안 나가요 (js-yaml 도 이 사이트가 자체 보관한 파일이라 CDN 안 타요). 반대 방향 Properties→YAML 은 굳이 안 해요—'키 경로를 중첩으로 되돌리려면' 어느 점이 층위이고 어느 게 키 이름 일부인지 추측해야 해요 (a.b.c 가 a 아래 b 아래 c 인지, 이름이 통째로 a.b.c 인 키 하나인지), 틀리면 설정 뜻을 말없이 바꿔 버리거든요. 이 단계는 손으로 정리하거나 Spring Boot 같은 프레임워크 바인딩에 맡기세요.

관련 도구