JSON 转 Properties 工具

把 JSON 对象转换成 Java .properties 格式,支持嵌套对象展平和注释回填,纯浏览器本地运行。

输入一个 JSON 对象,即可生成 java.util.Properties 和 Spring Boot 都能加载的 Java .properties 文件。嵌套对象变成 server.port=8080 这样的点号键;分隔符和换行都用反斜杠转义,值经过往返转换也保持原样;$comments 映射则写回为 # 注释行。整个过程在浏览器中运行,不上传任何内容。

JSON 输入

上传

高级选项转换清除

.properties 输出

结果会显示在这里...

复制下载

结果会显示在这里...

关于 JSON 转 Properties 工具

.properties 是逐行解析的格式,所以序列化时,凡是会改变 Java 切分一行方式的字符都要转义:键里的空格写成 \ (反斜杠加空格),值里的 = 或 : 写成 \= 或 \:,换行写成 \n。键和值之间统一用 = 连接,嵌套的 JSON 对象按原有顺序展平成点号键。像 café 这样的非 ASCII 文本直接以 UTF-8 写出,而不是转成 \uXXXX 转义。Java 9 及以后的版本会按 UTF-8 读取资源包(resource bundle),但 Properties.load(InputStream) 按 ISO-8859-1 解码,所以在自己的代码里加载时,请通过 UTF-8 的 Reader 来读取。

你可能还需要

Properties 转 JSON

把 Java .properties 文件转换成 JSON,点号键名转为嵌套对象,数字与布尔值自动推断类型。

打开工具

JSON 转 Env

把 JSON 对象转换成 .env 的 KEY=VALUE 格式,支持点号键名展平。

打开工具

JSON格式化和验证器

格式化、验证和可视化JSON数据。

打开工具

YAML 转 JSON

将 YAML 转换为 JSON 或将 JSON 转换为 YAML。

打开工具

如何把 JSON 转换成 .properties

  1. 1

    准备 JSON 对象

    在输入框里粘贴对象,或点烧瓶图标载入 { "server": { "port": 8080 } } 示例;顶层的每个键都会成为属性名。

  2. 2

    设定键的分隔符

    高级选项里可以保留 Java 惯用的点号(spring.datasource.url 就是这种写法),换成别的分隔符,或者关闭展平,让嵌套对象以 JSON 文本保留。

  3. 3

    转换并核对转义

    点击「转换」后,每个叶子值写成一行 key=value;键里的空格、值里的分隔符以及换行都加上反斜杠,java.util.Properties 读回来的值与原来一致。

  4. 4

    放进 src/main/resources

    复制输出,或下载为 .properties 文件放到 src/main/resources 下;要再解析成 JSON,用切换方向图标。

参考资料

相关开发者工具

JSON 转 Properties 常见问题

哪些字符前面会加反斜杠?
键里的空格、值里的 = 和 :,以及换行符。例如 a\ b=x\=y、note=line1\nline2——这些正是 java.util.Properties 加载文件时会还原的转义写法。
中文等非 ASCII 字符会写成 \uXXXX 吗?
不会,直接写成 UTF-8 原文。Java 9 及以后按 UTF-8 加载 .properties 资源包;但 java.util.Properties#load(InputStream) 默认按 ISO-8859-1 解码,如果你的代码用的是这个 API,请改用 load(Reader) 并配合 UTF-8 的 Reader。
能用 JSON 生成 Spring Boot 的 application.properties 吗?
可以。Spring Boot 的配置项本来就是点号命名,在默认的点号分隔符下,{ "server": { "port": 8080 } } 会输出 server.port=8080。
JSON 数组会写成 hosts[0]=a 这种索引形式吗?
不会。数组作为一个值写出,内容就是它的 JSON 文本,例如 hosts=["a","b"];Spring Boot 那种 hosts[0]=a 的索引写法不会生成。
server.port=8080 里的 8080 还算数字吗?
在 .properties 里,值永远是字符串,所以 true、false 和数字都按纯文本写出。用 Properties 转 JSON 并开启类型推断,就能把它们还原成真正的 JSON 类型。
$comments 里的说明会变成什么?
会写成对应键上方的 # 注释行——Properties 转 JSON 产出的 $comments 对象正好能这样原样带回来。把「注释处理」设为「忽略」,输出就只剩 key=value 行。
转换时数据会发到服务器吗?
不会。解析和格式化都在浏览器本地完成,不会产生任何携带你数据的网络请求。