输入
输出
转换结果会出现在这里。
转换选项 只影响对应格式的输出
JSON 与 XML 用
输出 XML 时,若对象不是「恰好一个键」就用它当根元素
properties 输出用
「非 ASCII 转义」按 Java 规范把中文写成
「点号展开」只影响 properties → 其它格式:勾上后
\u4F60;Spring Boot 2.4+ 默认按 UTF-8 读,可以不勾。「点号展开」只影响 properties → 其它格式:勾上后
a.b=1 会变成 {"a":{"b":"1"}};
不勾则保持扁平的键(键里本来就有点的场景更安全)。
格式与映射约定 转换有损的地方都写在这里
| 格式 | 特点 | 会丢的东西 |
|---|---|---|
| JSON | 对象 / 数组 / 字符串 / 数字 / 布尔 / null。解析失败会给出行列位置。 | Infinity 与 NaN 会被写成 null(页面会给出警告);undefined 字段会被丢掉。 |
| YAML | 按 JSON 兼容 schema 解析:日期、.inf 这类不会被特殊处理,保持原样,避免转 JSON 时静默变样。 |
注释全部丢失(YAML 的 # 注释、锚点与别名 &a / *a 展开后不再保留);多文档只取第一份。 |
| XML | 用浏览器原生解析器,非良构时给出行列位置。映射约定见下表。 | 注释、处理指令、CDATA 边界、命名空间前缀(保留为标签名的一部分)、属性顺序。 |
| properties | 支持 = / : / 空格三种分隔符、\ 续行、\uXXXX 与 \n\t\\ 转义、# 与 ! 注释。键前后的空白会去掉。 |
值一律是字符串(port=8080 出来是 "8080" 不是数字);注释丢失;重复键只留最后一个;值末尾的空白按 Java 规范保留(a=x␣␣ 的值是 "x ")。 |
XML ↔ JSON 的映射约定
| XML | JSON | 说明 |
|---|---|---|
<n id="1">x</n> | {"n":{"@id":"1","#text":"x"}} | 属性加 @ 前缀;文本放 #text |
<n>x</n> | {"n":"x"} | 既无属性又无子元素时直接给字符串 |
<l><i>1</i><i>2</i></l> | {"l":{"i":["1","2"]}} | 同名子元素重复出现 → 数组 |
<root>…</root> | {"root":{…}} | 根元素会被包成一层键,这样 XML → JSON → XML 能原样回去 |
YAML 由本机
vendor/js-yaml-4.1.0.min.js 解析(本地优先,缺失时回退锁版本的 CDN);
JSON 用浏览器原生 JSON.parse,XML 用原生 DOMParser,properties 是本页自写解析器 —— 其余三种格式零外部依赖。