格式化、编码、生成、校验:如何选择正确工具

理解格式化、编码、生成、校验和转换的区别,帮助你更快选择合适的开发者工具。

开发者工具经常使用相似的词描述不同任务。格式化、编码、生成、校验、转换、检查,看起来都很简单,但如果操作选错,结果就会让人困惑。

最快的工作流,通常从正确命名操作开始。

格式化:让已有数据更可读

格式化改变的是展示方式,不应该改变数据含义。JSON 格式化会增加换行和缩进,但对象里的值应该保持不变。

当数据已经有效,而你需要阅读、审查或提交更清晰的 diff 时,就适合格式化。JSON 格式化工具 是最典型的例子:它可以美化、压缩、排序键名,并用树形视图阅读合法 JSON。

编码:让数据适合传输

编码会改变数据的表示方式,让它可以通过特定系统传输。URL 编码用于保护 URL 里的保留字符,Base64 把字节表示成文本。编码不等于加密。

处理 query string、表单值和 URI 组件时,使用 URL 编码 / 解码。处理需要安全文本表示的文本或文件数据时,使用 Base64 编码 / 解码

生成:创建新的数据

生成是创建新值,而不是转换已有输入。UUID 生成器创建随机标识符,密码生成器按规则创建秘密值或口令短语。

当复用真实数据有风险或不够干净时,就应该生成新数据。UUID 生成器 适合 fixture 和临时 ID。密码生成器 适合用浏览器加密随机能力创建强密码。

校验:检查数据是否符合规则

校验回答的是“是否符合预期”的问题:这段输入是否符合语法或结构规则?

JSON 校验检查语法,JSON Schema 校验检查结构和约束,时间戳检查可以判断数字更像秒还是毫秒。校验通常应该在格式化或转换之前进行。

转换:改变形态或单位

转换会把一种表示变成另一种表示。Unix 时间戳可以转换为 ISO 8601 日期,YAML 可以转换为 JSON,JSON 可以生成 TypeScript 类型。转换适合让同一份信息适配另一个系统。

当同一个时间点需要在 Unix 秒、毫秒、本地时间、UTC 和 ISO 字符串之间切换时,可以使用 时间戳转换器

一个简单判断规则

先问你希望输入发生什么变化:

  • 想读得更清楚:格式化。
  • 想通过受限通道传输:编码。
  • 想得到一个新值:生成。
  • 想知道是否正确:校验。
  • 想换成另一种表示:转换。

这个小区分可以节省很多时间,也能避免把原本只想检查的数据意外改掉。

相关工具

使用本文提到的工具

JSON 格式化工具json / formatter / validatorBase64 编码 / 解码base64 / encode / decodeURL 编码 / 解码url / uri / encodeUUID 生成器uuid / guid / random时间戳转换器timestamp / unix / epoch

继续学习相关格式

JSON 课程系统学习 JSON:语法、类型、解析与生成、实际结构模式及在现代技术栈中的位置。URL 编码课程理解百分号编码、查询字符串,以及 encodeURI 与 encodeURIComponent 的区别。

返回文章列表