JSON转Base64编码
把JSON文件转成一行Base64文本,放进环境变量、YAML字段和API请求体时,不会再因引号、花括号和换行出问题。解码后得到的字节与原文件完全一致。
数据转换器
或将CSV, TSV, TXT … 文件拖放到此处 ·
单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除
文件在我们的服务器上处理,并在 30 分钟后删除。
CSV 和文本文件中分隔列的字符,读取和写入都适用。自动会从输入中检测,并以逗号写出。
UTF-8 适用于所有语言。如果 Windows 上的 Excel 打开 CSV 时重音字符或中日韩文字显示乱码,请选择带 BOM 的 UTF-8。
输入为 Excel、ODS 和 Numbers 时:只转换第一个工作表,或转换所有工作表(ZIP 中每个工作表一个 CSV,或 JSON 中每个工作表一个键)。
新电子表格中工作表标签的名称,最多 31 个字符。
对象数组会为每一行使用列名作为键;数组的数组更紧凑,并把表头作为第一个数组。
包裹所有行的外层元素名称;每一行会成为其中的一个 <row>。
用于 CREATE TABLE 和 INSERT 语句。只能使用字母、数字和下划线。
不同数据库的引号和列类型略有差异;请选择您要导入的数据库。
把日期单元格统一改写为一种格式。ISO (2026-10-18) 对数据库和代码最稳妥;保持原样则保留源文件中的显示方式。
使用方法
- 1
上传JSON文件
添加 .json、.jsonl 或 .ndjson 文件,例如服务账号密钥或配置文件。每批最多 20 个文件,每个不超过 95 MB。
- 2
选择是否加前缀
默认输出纯 Base64。只有当文本要放进需要 data: URL 的 HTML 或 CSS 属性时,才在高级设置中开启 Data URI 前缀。
- 3
编码并复制
点击转换为 Base64 文本,下载结果,然后把字符串粘贴到你的密钥库、清单文件或请求体中。
把 JSON 编码为 Base64 不会改变数据,只是把它重新包装成普通的字母和数字,使其能通过那些会破坏大括号、引号和换行的环节。
为什么要把JSON文件编码为Base64
最典型的场景是凭据文件。云服务商给你一个 JSON 格式的服务账号密钥,而你的 CI 系统、托管后台或容器平台只提供单行文本框来存放密钥。直接粘贴原始 JSON,遇到第一个换行或第一个未转义的引号就会出错。编码为 Base64 后,同一个密钥就是一整段连续的字符串,应用在启动时再解码即可。
Base64 最早源于电子邮件:1996 年的 RFC 2045 定义了 MIME,用它让附件能够通过只支持 7 位文本的邮件服务器。2006 年,RFC 4648 又将这套字符表单独标准化。代价是体积变大,因为每 3 个字节会变成 4 个字符。对于图片和其他二进制文件,图片转 Base64 使用同样的编码并生成对应的 data URI。如果接收方读取的是 YAML 而不是 Base64 字段,用 JSON 转 YAML 可能就够了。
JSON转Base64示例
{"env":"prod","retries":3}
eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=哪些地方需要Base64编码的JSON
| 机构 | 要求 | 来源 |
|---|---|---|
| Kubernetes Secret | data 下的每个值都必须是 Base64;要挂载 JSON 密钥文件,需先对其编码。 | kubernetes.io |
| GitHub REST API | 创建或更新文件内容的接口要求文件(包括 .json 文件)以 Base64 形式放在 content 中。 | docs.github.com |
| JSON Web Token(RFC 7519) | JSON 头部和声明各自用 base64url 编码,再以点号连接。 | — |
| 电子邮件附件(MIME) | .json 附件以 Base64 传输编码发送,以便通过仅支持文本的邮件服务器。 | — |
- Base64Base 64 编码 · RFC 4648 编码
- 一种用 64 个安全字符书写任意字节的方法:A–Z、a–z、0–9、+ 和 /,并以 = 补位。每 3 个输入字节变成 4 个输出字符,所以文本比原文件长约三分之一。它可以还原且不含密钥,因此只是一种传输格式,不是安全措施。
JSON与Base64格式说明
JSON
JavaScript 对象表示法
JSON 是一种轻量级结构化数据文本格式,由 Douglas Crockford 在 21 世纪初推广,并被标准化为 RFC 8259 和 ECMA-404。它用简单易读的语法表示对象、数组、字符串、数字、布尔值和 null。它是网络 API、配置文件以及几乎所有编程语言之间数据交换的默认格式。它没有内置注释、日期或模式,嵌套很深的大文件没有查看器就很难阅读。
- 压缩方式
- –
- 透明度
- –
- 动画
- –
- 发布年份
- 2001 · Douglas Crockford
BASE64
Base64 编码文本
Base64 是 RFC 4648 中定义的一种编码,可把任意二进制数据转换为由 64 个安全文本字符组成的字符串。它用于在 HTML 和 CSS 中以 data URI 嵌入图片、给邮件添加附件,以及在 JSON 或 XML 中传输二进制数据。编码完全可逆,但会使数据增大约 33%。Base64 不是加密,没有任何安全性,任何人都可以解码。
- 压缩方式
- 无损
- 透明度
- –
- 动画
- –
- 发布年份
- –
当结构化数据必须放进一个不能包含原始引号和换行的单个字符串字段时,就需要把 JSON 编码为 Base64,例如 CI 密钥、Kubernetes 清单、API 的 content 字段或请求头的值。
JSON转Base64常见问题
Base64编码后的JSON是加密的吗?
不安全。Base64 只是一种编码,任何人用一条命令就能解码。Kubernetes 官方文档也提醒,Secret 默认只是 Base64 编码并以未加密方式存储,所以编码后的字符串要和原始密钥一样妥善保护。
令牌或URL里该用Base64还是base64url?
这里输出的是标准 Base64,使用 + 和 /,并以 = 补位。JWT 和 URL 参数使用 RFC 4648 中的 base64url 字符表,它改用 - 和 _,通常还会省略补位。如果目标要求 base64url,请替换这三个字符。
编码前需要压缩(minify)JSON吗?
通常会。空格、缩进和换行与其他字符一样都是字节,每 3 个字节会变成 4 个输出字符。先把格式化过的配置压缩(例如用 jq -c),编码后的字符串也会相应变短。
如何把字符串解码回JSON?
在 macOS 或 Linux 中运行 base64 --decode;在 PowerShell 中使用 [Convert]::FromBase64String;在浏览器中,把 atob 的结果交给 TextDecoder 处理,UTF-8 字符才能正确还原。
kubectl为什么提示illegal base64 data?
Secret 清单中 data 下的值必须是单行的有效 Base64。出现该错误通常是粘贴时混入了换行,或者把纯 JSON 放进了 data。纯文本值应放在 stringData 下,由 Kubernetes 帮你编码。
编码会改动JSON里的内容吗?
不会。Base64 在字节与文本之间无损互转,因此键、值、带重音的字符,甚至文件开头的字节顺序标记,解码后都会原样还原。
- 图片转Base64在线工具将PNG、JPG、GIF、WebP或SVG图片编码为Base64文本,自带data:image前缀,可直接用于HTML src、CSS url()或JSON数据。一次最多20张。
- JSON转TXT转换器将JSON转换为纯文本文件:每行一条记录,字段用制表符或任意自选分隔符隔开。可直接用记事本、Excel和命令行工具打开。
- JSON转YAML转换器在线将JSON转换为YAML,适用于Kubernetes、GitHub Actions、Compose和Ansible配置。缩进规范、引号安全,每批20个文件,无需注册。
- JSON转XML转换器在线将JSON转换为XML:键名变为元素,数组变为重复元素,全部包在您命名的根标签内。输出带缩进格式,无需注册账号。
- JSON转CSV将JSON或JSON Lines转换为CSV:每个对象一行,嵌套字段展开为列,采用带BOM的UTF-8编码,Excel中重音字符显示正常。可同时处理20个文件。