You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Nix读取文件系统中的JSON文件?

Nix读取本地文件系统JSON文件的方案

功能支持情况

读取并解析本地JSON是Nix原生支持的能力,不需要引入第三方依赖,通过内置函数即可直接实现。

使用方法

你需要配合使用两个Nix内置函数完成操作:

  • builtins.readFile <文件路径>:读取指定路径文件的内容,返回字符串格式
  • builtins.fromJSON <JSON字符串>:将合法的JSON格式字符串解析为Nix可直接操作的属性集或列表

代码示例

假设你当前.nix文件同级目录下存在app_config.json,内容如下:

{
  "port": 8080,
  "enableLog": true,
  "allowHosts": ["127.0.0.1", "localhost"]
}

你可以用以下Nix代码读取并解析该文件:

let
  # 读取JSON文件内容为字符串
  rawJson = builtins.readFile ./app_config.json;
  # 解析为Nix属性集
  appConfig = builtins.fromJSON rawJson;
in
{
  servicePort = appConfig.port; # 取值为8080
  logStatus = appConfig.enableLog; # 取值为true
  firstAllowHost = builtins.elemAt appConfig.allowHosts 0; # 取值为"127.0.0.1"
}

注意事项

  • 相对路径默认相对于你当前编写代码的.nix文件所在目录,而非执行Nix命令的工作目录
  • 若目标JSON格式不合法,builtins.fromJSON会直接抛出评估错误终止执行,你可以通过builtins.pathExists <文件路径>提前判断文件是否存在
  • 在Nix纯评估模式下运行时,需要确保目标文件被纳入Nix的可跟踪上下文,否则会触发访问权限报错

内容的提问来源于stack exchange,提问作者Chris Stryczynski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:24:01