开发者工具·语法转换器
从电子表格 CSV 到 API JSON:为什么每个值都以字符串形式到达
· 为什么它很重要
csv json 数据格式
从电子表格导出的 CSV 会丢失电子表格已知的类型,并且 API 期望将它们恢复。这篇文章解释了为什么仔细的转换器将值保留为字符串,为什么猜测是危险的,以及如何准备文件以便导入成功。
拒绝每一行的导入 — 一个需要数字和布尔值的 API,以及一个充满“42”和“TRUE”的 JSON 主体
该大纲描述了由 CSV-to-JSON 生成的 API 导入,但语法转换器无法执行该操作。 CSV 被标记为不可读,没有任何转换对以 CSV 开头,并且接口从不将其作为源提供。尝试请求返回不支持的转换错误,而不是猜测的 JSON。
此更正是文章的中心事实,而不是隐藏的遗漏。产品经理仍然可以准备电子表格导出,但解析和输入需要一个 CSV 工作流程来公开决策。为此面板编写虚构的步骤会将读者带到不存在的控件。
请求的 CSV-to-JSON 导入无法在此面板中运行
CSV 字段是在方言下分隔和引用的文本序列。该文件不包含电子表格数字格式、布尔类型或嵌套对象。它甚至可能没有说明其分隔符或第一个记录是否是标题。这些不确定性在任何 JSON 类型决策之前就出现了。
前导零的邮政编码、长标识符和类似日期的值说明了为什么自动强制是有风险的。然而,“一切都是字符串”还需要标题和方言选择。 ToolAcre 拒绝完整的读取操作,而不是仅实现简单的一半并将其呈现为可靠的。
CSV 带有文本字段,但读者仍必须选择方言和标头策略
类型推断以便利换取无声腐败。 `0042` 可以是代码,`9007199254740993` 超出精确的 JavaScript 整数精度,`N/A` 可能是文字类别而不是丢失数据。特定于区域设置的日期和小数引入了更多解释。
正确的类型来自接收 API 架构和导入策略,而不是来自单元格的表面外观。仔细的工作流程首先根据显式 CSV 规则解析行,然后根据该约定转换选定的字段并逐行报告失败。
准备电子表格 — 一致的列,显式 true/false, 对于真正缺失的值,没有千位分隔符和空单元格
准备一个一致的文件:一个标头策略、一个分隔符、有效的引用和记录的编码。确定空单元格与空字符串和 null 有何不同。仅当导入者以这种方式映射时才使用显式的 true 和 false 拼写;避免使用千位分隔符,除非所选方言和类型解析器需要它们。
这些是针对导入工作流程的建议,而不是语法转换器的功能。该存储库将用户指向 CSV 工具,因为它可以提出该工具有意避免的问题。
准备 CSV 属于询问分隔符、引用、标头和类型的工具
代码准确的工作结果是拒绝。使用 CSV 作为源、JSON 作为目标调用 `convert` 会生成 `UNSUPPORTED_CONVERSION`;提示解释说 CSV 读取需要分隔符、引用和类型决定。没有部分转换的正文可供随后编辑。
使用 CSV Cleaner 检查和修复文件,然后使用其设置与 API 架构匹配的导入器。如果数据已表示为 JSON 记录,则支持的反向方向可以写入 CSV 并暴露扁平化、空歧义和公式转义。
工作边界:不支持的请求和支持的替代工作流程
小数点逗号通常伴随分号分隔的记录,而日期表示法因导出程序区域设置而异。盲目选择逗号的解析器可以分割数值;类型猜测可以重新解释日期和月份。字符编码和 BOM 处理在字段语义之前添加了另一个边界。
由于此路由不读取 CSV,因此它不声明如何处理这些情况。 JSON-to-CSV 编写器可以选择逗号、分号或制表符,并可选择添加 UTF-8 BOM,但输出选项并不是输入解析器的证据。
这不包括什么 - API 可能需要的嵌套结构,CSV 无法表达,必须在转换后组装
CSV 无法直接表示 API 可能需要的嵌套对象。点分隔的标头可以是一种约定,但它们不会自动创建对象,除非导入者定义了该规则。数组和重复的嵌套记录需要显式的组装阶段。
通用语法转换器无法从平面表推断业务结构。定义目标 JSON 架构,有意映射列并在发送前进行验证。那是应用程序集成而不是语法转换。
要点:类型是您的决定,而不是转换器的决定 - 以及语法转换器面板如何在发送之前向您显示 JSON
类型是接收合约支持的决策。 ToolAcre 的拒绝让这些决定保持可见,而不是制造看似合理但有风险的 JSON。最好停止,而不是销毁前导零或默默地舍入标识符。
对列出的九个方向使用语法转换器,包括 JSON 到 CSV。对于 CSV 到 JSON,选择一个询问方言、标头和类型的工具。缺失的路线是刻意设置的安全边界,而不是未完成的按钮。
在导入真实电子表格之前,写下缺少按钮将隐藏的决定:编码、分隔符、引号规则、标题行、重复标题策略、空单元格含义以及每个目标字段的类型规则。从该列表配置的 CSV 读取器可以生成可靠的 JSON。一个从不问这些问题的通用转换器可能看起来更快,但任何节省的时间都是在 API 拒绝或误读后从调试标识符、日期和缺失值中借来的。