企评社

表示ラベルは日本語です。企業口コミ・投稿・ツールの説明は現在中国語のみです。

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(八進法ではない)、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 のようなフレームワークのバインディングにお任せください。

関連ツール