.properties 转 JSON 工具
把 Java .properties 文件转换成 JSON,点号键名嵌套、类型推断,键上方的注释保留为 $comments,纯浏览器本地运行。
粘贴一份 Java .properties 文件,工具会在浏览器里即时转换成 JSON。像 app.cache.ttl 这样带点号的键名默认会变成嵌套对象,看起来像数字或布尔值的内容会被推断成真正的 JSON 类型。紧贴在某条属性上方的注释会挂到这个键上,收进 $comments 字段;和下一条属性之间隔着空行的注释块(比如文件开头的版权说明)以及空行本身,不会出现在 JSON 里。键和值按 java.util.Properties 的语法规则读取:=、: 或空白分隔,# 和 ! 开头的注释,行尾反斜杠续行,\uXXXX 转义。
关于 Properties 转 JSON 工具
Java 的 .properties 格式(key=value、key:value 或 key value,注释用 # 或 !)自 java.util.Properties API 早期就一直是标准的配置和 i18n 资源包格式。这个工具按 java.util.Properties 规定的语法解析——包括用反斜杠续行的多行值,以及 \uXXXX 这类 Unicode 转义——产出可以查看、对比,或者喂给 JavaScript 构建流程的 JSON。开启点号键名嵌套后,app.cache.ttl=60 会变成 { "app": { "cache": { "ttl": 60 } } };类型推断会把 "false" 变成真正的布尔值;注释处理决定要不要把紧贴在属性上方、说明这条属性的 # 或 ! 行收进 $comments 字段。
你可能还需要
如何把 .properties 转换成 JSON
- 1
粘贴 .properties 内容
把 .properties 文件的内容复制进输入框,或者点烧瓶图标加载一份带注释和点号键名的示例。
- 2
按需调整高级选项
打开高级选项可以切换类型推断、点号键名嵌套(以及分隔符),以及注释要保留成 $comments 还是忽略。
- 3
点击「转换」
解析器按文件顺序读取每条属性:拼接反斜杠续行、解码 \uXXXX 等转义,把紧贴在属性上方的注释挂到对应的键上,再生成 JSON 对象。之后切换任意选项都会立刻重新计算。
- 4
复制或下载 JSON
复制 JSON,或者下载成 .json 文件。点切换方向图标可以跳到 JSON 转 Properties 做反向转换。
参考资料
- Java SE — java.util.Properties
官方 Java API 文档,定义了 .properties 文件格式,包括本解析器遵循的注释语法、分隔符和续行规则。
- RFC 8259 — The JSON Data Interchange Format
这个工具产出的 JSON 格式所依据的 IETF 规范。
相关开发者工具
Properties 转 JSON 常见问题
- 怎么在线把 Java .properties 文件转成 JSON?
- 把 .properties 文件的内容粘贴到输入框,点击「转换」。每一行 key=value 都会变成一个 JSON 字段,点号键名默认会被嵌套。复制结果,或者下载成 .json 文件。
- 解析 .properties 的方式和 Java 一样吗?
- 键和值的读法一样:可以用 =、: 或空白分隔,# 或 ! 开头的是注释,行尾反斜杠表示下一行接着写,\uXXXX 会被解码;同一个键出现两次时取后一个值,这一点也和 Properties.load 相同。不过 JSON 不是原文件的完整副本:空行,以及没有紧贴在属性上方的注释,都不会保留。
- 我的 .properties 文件会被上传到服务器吗?
- 不会。所有解析都在浏览器里用 JavaScript 本地完成,不会有任何数据经过网络发送——这点对包含内网主机名或凭证的 properties 文件尤其重要。
- 可以把带点号的 .properties 键名转成嵌套 JSON 对象吗?
- 可以。开启「点号键名 → 嵌套」(默认分隔符是「.」)后,像 server.port=8080 这样的键会变成 { "server": { "port": 8080 } }。关掉这个选项,扁平的点号键名会作为单个 JSON 字段保留下来。
- .properties 转 JSON 会保留注释吗?
- 只保留属于某条属性的注释:紧贴在键上方、中间没有空行的那段 # 或 ! 注释,会以该键的点号路径为键名收进 $comments。文件开头的说明、后面跟着空行的注释块、文件末尾的注释,以及空行本身都不会保留。想要一份只有值的 JSON,可以在高级选项里把「注释」切到「忽略」。
- .properties 里的布尔值和数字是怎么处理的?
- 开启「推断类型」后,只有恰好写成 true、false 的值会变成布尔值,只有 8080、0.75 这类普通十进制数会变成数字。转回文本时会变样的值——1.0、007,以及 1.2.3 这种版本号——仍然是字符串。关掉「推断类型」,所有值都保留成字符串。
- .properties 和 JSON 有什么区别?
- Java 的 .properties 是面向行的键值对文本,常用于应用配置和 i18n 资源包;JSON 原生支持嵌套结构和带类型的值。转换之后就能把 properties 文件当结构化数据来对比,或者导入期待 JSON 的 JavaScript/TypeScript 工具链。