我想将JSON值用作heroku config:set
的环境变量。
但是如果我运行此命令:
heroku config:set FOO_JSON={"abc":"bcd","cde":"def" ... }
所有"
都这样删除:
FOO_JSON={abc:bcd,cde:def ... }
,我得到一个解析错误。
如何在Heroku的环境变量中使用JSON?
答案 0 :(得分:1)
Heroku 将删除第一个和最后一个 "
但这很好,我最近遇到了类似的问题。
当您在代码库中获取变量时,它将用字符串引号包装回来,以便您可以成功JSON.parse(process.env.VARIABLE)
示例。我在本地 .env
BANLIST = '["abdu","yak","jek","tosch","krek"]'
所以,我可以简单地设置
heroku config:set BANLIST='["abdu","yak","jek","tosch","krek"]'
或
heroku config:set BANLIST=["abdu","yak","jek","tosch","krek"]
两者都会导致 ["abdu","yak","jek","tosch","krek"]
。
因此,当您使用 JSON.parse(process.env.BANLIST)
取回它时,您将获得适当的数组输出。
警告:如果您使用 heroku GUI 界面设置用 '
或 "
包装的配置变量,它根本不会设置,因此只需放置您的数组或对象 JSON,而不用其中任何一个包装那些
答案 1 :(得分:0)
这是因为您的外壳如何处理引号。将整个内容用单引号引起来:
heroku config:set FOO_JSON='{"abc":"bcd","cde":"def" ... }'