先看结论
- JSON 是一种独立于编程语言的轻量文本数据交换格式,用于表示结构化数据,跨开放系统交换时必须使用 UTF-8,数值精度与嵌套深度可能受解析器限制。
- 只想查看内容,可用文本编辑器打开;需要检查语法或读取结构,应使用 JSON 解析器。Windows 和 Mac 用户可从文本编辑器的“打开”对话框选择文件;手机用户可在明确支持文本或 JSON 的应用中,通过文件选择器打开。文件能显示为文字,不等于 JSON 语法正确。
- 读取不可信 JSON 时应使用 JSON 解析器,避免 eval 或类似执行机制。JSON 语法本身不包含赋值和函数调用,但用执行代码的方式解析不可信输入会带来代码执行风险。解析成功也不能证明数据来源可信或内容真实。
JSON 文件是什么、怎么打开与转换
JSON 全称 JavaScript Object Notation,源自 ECMAScript 语法,支持对象、数组、字符串、数字、布尔值和 null。对象是无序的名称与值集合,数组是有序序列。IANA 登记的扩展名为 .json,媒体类型为 application/json,未定义固定魔数,因此不能仅凭固定文件头识别。
JSON 转 Excel 或其他表格格式前,应先决定嵌套对象和数组如何映射到列、行或独立表格。转换后核对大整数、高精度小数、重复键和数组顺序;读取或转换过程可能改变数值,也可能丢失重复键,不能仅凭表格能打开就认定数据完整。
怎么打开
只想查看内容,可用文本编辑器打开;需要检查语法或读取结构,应使用 JSON 解析器。Windows 和 Mac 用户可从文本编辑器的“打开”对话框选择文件;手机用户可在明确支持文本或 JSON 的应用中,通过文件选择器打开。文件能显示为文字,不等于 JSON 语法正确。
只想查看内容,可用文本编辑器打开;需要检查语法或读取结构,应使用 JSON 解析器。Windows 和 Mac 用户可从文本编辑器的“打开”对话框选择文件;手机用户可在明确支持文本或 JSON 的应用中,通过文件选择器打开。文件能显示为文字,不等于 JSON 语法正确。
JSON 转 Excel 或其他表格格式前,应先决定嵌套对象和数组如何映射到列、行或独立表格。转换后核对大整数、高精度小数、重复键和数组顺序;读取或转换过程可能改变数值,也可能丢失重复键,不能仅凭表格能打开就认定数据完整。
文件安全
读取不可信 JSON 时应使用 JSON 解析器,避免 eval 或类似执行机制。JSON 语法本身不包含赋值和函数调用,但用执行代码的方式解析不可信输入会带来代码执行风险。解析成功也不能证明数据来源可信或内容真实。
来路不明、文件名带两个后缀,或者内容和扩展名对不上——先停下来核对。
转换格式
JSON 转 Excel 或其他表格格式前,应先决定嵌套对象和数组如何映射到列、行或独立表格。转换后核对大整数、高精度小数、重复键和数组顺序;读取或转换过程可能改变数值,也可能丢失重复键,不能仅凭表格能打开就认定数据完整。
先复制一份原文件再转换,转完对照看看画质、元数据和排版有没有变。
常见问题
JSON 是什么格式,主要用来做什么?
JSON 是独立于编程语言的文本数据交换格式,用于在应用之间交换结构化数据。它支持对象、数组、字符串、数字、布尔值和 null;对象无序,数组有序。
Windows 怎么打开 JSON 文件?
在文本编辑器中选择“打开”,再选中 .json 文件即可查看文字内容。若要检查语法或按结构读取数据,应使用 JSON 解析器;显示出文字并不代表语法有效。
Mac 怎么打开 JSON 文件?
在 macOS 的文本编辑器中通过“打开”选择 JSON 文件,可查看其内容。需要确认语法或读取对象、数组等结构时,使用 JSON 解析器。
手机怎么打开 JSON 文件?
选择明确支持文本或 JSON 的应用,再通过应用内的文件选择器打开文件。可处理的文件大小和解析限制取决于应用,不能仅凭 .json 扩展名判断是否支持。
JSON 文件打不开时,如何检查语法错误?
根据解析器提示的位置检查引号、逗号、括号及值的写法。如果语法看似正确,还要检查编码、文件大小和嵌套深度限制;未配对的 UTF-16 代理项也可能导致解析结果不一致或运行时异常。
JSON 中文乱码怎么解决?
先确认读取时使用 UTF-8。跨开放系统交换的 JSON 必须使用 UTF-8,网络传输时不得添加字节顺序标记(BOM)。如果原始字节仍完整,按正确编码重新打开可能恢复显示;不能保证已损坏的数据可恢复。
JSON 和 JavaScript 代码有什么区别?
JSON 是源自 ECMAScript 语法的数据格式,JavaScript 代码则可以表达可执行操作。JSON 语法不包含赋值和函数调用;读取 JSON 应使用解析器,避免把内容当代码执行。
JSON 转 Excel 如何保留嵌套数据?
选择说明了嵌套对象和数组处理方式的转换工具,并先决定展开为列、展开为多行,还是拆成独立表格。转换后与原始 JSON 对照;能否保留结构取决于工具和映射方式。
JSON 大整数精度丢失怎么办?
检查读取和转换链路中每个工具支持的数值范围与精度。实现可以限制数字,超大整数或高精度小数可能在解析时改变。应对照原始文本核对结果;已经丢失的位数不能仅凭处理后的数值确定。
JSON 重复键会保留哪个值?
结果取决于实现:部分解析器只保留最后一个值,另一些会报错或保留全部。为避免跨应用读取时产生差异,应使用唯一的对象名称。
读取不可信 JSON 文件安全吗?
应使用 JSON 解析器,避免 eval 或类似执行机制。JSON 本身没有赋值和函数调用,但执行不可信输入可能运行代码。文件能正常解析,只说明通过了该解析器的检查,不能证明数据可信。
JSON 文件大小和嵌套深度有什么限制?
RFC 8259 允许解析器限制文本大小和嵌套深度,因此没有适用于所有应用的统一可打开大小。遇到限制时,应查阅所用解析器或应用的具体说明。
相关格式
资料来源
RFC 8259 — The JavaScript Object Notation (JSON) Data Interchange Format · IETF / RFC Editor,互联网标准
IANA Media Type Registration — application/json · IANA,官方媒体类型登记