Skip to content

chooseJsonObj

chooseJsonObj 函数通过文件选择器选择本地 JSON 文件,并直接返回解析后的 JSON 对象。

语法

javascript
chooseJsonObj()

参数

无参数。

返回值

Promise<Object | Array>

返回解析后的 JSON 对象或数组。具体类型取决于所选 JSON 文件的内容结构。

描述

chooseJsonObjchooseFilefile2Json 的组合封装。执行时先调用 chooseFile() 打开文件选择器,选取首个文件后通过 file2Json 以文本方式读取,最后调用 JSON.parse 将字符串解析为 JSON 对象返回。

该函数省去了手动选择、读取、解析三步操作,适合需要让用户导入 JSON 配置或数据的场景。

注意事项

  1. 函数固定调用 chooseFile() 不传参,即不限制文件类型且为单选模式,仅返回首个文件。若需筛选 .json 类型请直接组合 chooseFile('.json') + file2Json + JSON.parse
  2. 若所选文件不是合法 JSON,JSON.parse 会抛出 SyntaxError,建议调用方使用 try/catch 包裹。
  3. 返回值类型由文件内容决定,可能是对象 {} 或数组 [],使用前请根据实际结构处理。
  4. 函数依赖浏览器的文件选择与读取能力,iOS 下需 input 挂载到页面才能使用,已由 chooseFile 内部处理。

示例

选择并读取 JSON 文件

带异常处理的读取

浏览器兼容性

  • 函数基于 chooseFilefile2Json 实现,依赖浏览器文件选择与 FileReader API。
  • JSON.parse 为标准 API,所有现代浏览器均支持。
  • 在 iOS 下需 input 挂载到页面才可使用,已由 chooseFile 内部兼容处理。

性能考虑

  • 时间复杂度: 文件读取耗时取决于文件大小,JSON.parse 为 O(n),n 为字符串长度。
  • 大文件警告: 函数一次性读取并解析整个文件,超大 JSON 文件可能造成内存占用过高或主线程阻塞,建议限制文件大小。
  • 每次调用都会创建并销毁 input 元素,开销较小可忽略。

相关函数