Java .properties 转 JSON 转换器

按 Properties.load 的规则将 Java .properties 文件转换为 JSON:注释、= : 和空格分隔符、续行、\uXXXX 转义、嵌套。免费。

完全在浏览器中运行,您的数据不会被上传。

相关工具

查看全部

什么是 Properties 转 JSON?

粘贴 Java .properties 文件——例如 Spring Boot 的 application.properties 或消息资源包——即可得到 JSON。键可以保持扁平("app.name"),也可以按其中的点号嵌套为对象。

如何使用 Properties 转 JSON

  1. 将 .properties 粘贴到 .properties 输入框中,或使用加载示例或打开文件。
  2. 切换将点号键嵌套为对象,并选择 JSON 的缩进。
  3. JSON 输出会随你的输入实时更新;可使用复制或下载。

示例

输入
app.name = My App
app.port: 8080
输出
{
  "app.name": "My App",
  "app.port": "8080"
}

何时使用 Properties 转 JSON

适合查看、迁移或比对 Java 配置和 i18n 资源包。它不会解析 ${server.port} 这样的 Spring 占位符,也不处理特定 profile 的文件。

Properties 转 JSON 的工作原理

解析器遵循 java.util.Properties.load:以 # 或 ! 开头的行是注释,以奇数个反斜杠结尾的行会延续到下一行(去掉前导空白),键在第一个未转义的 =、: 或空白处结束。\t、\n、\r、\f 和 \uXXXX 转义会被解码;其他被转义的字符代表其自身。后出现的重复键优先。嵌套时,若某个键会与已有的值冲突(例如 a=1 和 a.b=2),它会保持扁平,这样不会丢失任何内容。和 Java 中一样,所有值都是字符串。

常见用例

  • 把 application.properties 转换为 JSON 或便于转为 YAML 的结构
  • 把 Java 消息资源包转换为 JavaScript i18n 库使用的 JSON
  • 把两个 properties 文件作为 JSON 来比较
  • 解码旧版 ISO-8859-1 资源包中的 \u 转义

常见问题

数字会被转换吗?

不会。Java properties 始终是字符串,因此值会保持为 "8080" 这样的字符串。

续行是如何处理的?

行尾的反斜杠会连接下一行,并去掉该行的前导空格,与 Java 的做法完全一致。

嵌套冲突时会怎样?

如果 a 和 a.b 同时存在,a.b 会保持为扁平的键,而不是覆盖 a。

推荐的下一步

探索更多分类