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

如何导出JSON对象数组格式的环境变量并可被解析为列表?

解决方案

1. 标准定义写法

shell 环境下导出命令:

export USERS='[{"name":"a","surname":"b","age":"c"},{"name":"d","surname":"e","age":"f"}]'

如果是写在 .env 配置文件中,直接写:

USERS='[{"name":"a","surname":"b","age":"c"},{"name":"d","surname":"e","age":"f"}]'

提示:如果age是数字/布尔类型,JSON中对应值无需加字符串引号,直接写"age":12即可,解析后会直接得到对应类型,无需额外转换。

2. 读取为对象列表的实现逻辑

环境变量原生仅支持存储字符串类型,你需要通过「JSON序列化存储 + JSON反序列化读取」的方式得到结构化的列表数据,这是单环境变量场景下的唯一可行方案。
不同语言的读取示例:

  • Python
import os, json
users = json.loads(os.getenv("USERS"))
# 遍历users列表即可映射到User对象
  • Node.js
const users = JSON.parse(process.env.USERS)
  • Java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;

String usersStr = System.getenv("USERS");
List<User> users = new ObjectMapper().readValue(usersStr, new TypeReference<List<User>>() {});

3. 之前写法失败的原因

  • 未用引号包裹整个值:shell会把方括号、大括号识别为特殊符号,无法正确赋值
  • 用双引号包裹JSON整体:内部未转义的双引号会和外层双引号冲突
  • 使用单引号作为JSON的键/值包裹符:不符合JSON语法规范,大部分解析器无法识别
  • 使用无引号的JSON键:不是合法JSON格式,解析会报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:36:03