使用Liquidsoap读取JSON文件

时间:2014-10-17 10:55:46

标签: liquidsoap

我想创建一些具有相同脚本但具有一些变量的Liquidsoap源,例如站名。

我已经看到我可以包含一个config.liq,但是如果我可以从与语言无关的东西(如JSON)中读取配置参数,那将会很好。 Liquidsoap具有of_json函数,但我不清楚如何从JSON文件而不是JSON字符串中读取。

如果有一个与脚本语言无关的配置文件,我该怎么办?

3 个答案:

答案 0 :(得分:2)

我不确定该设施何时被添加到Liquidsoap(我这里有1.2.1),但假设您有foo.json,例如:

[
    {
         station_name : "Some Station",
         station_url  : "http://example.com/"
    },
    {
         station_name : "Some Other Station",
         station_url  : "http://other.example.com/"
    }
]

然后你应该能够用以下内容阅读和解析它:

m = file.contents("config.json")
print(of_json(default=[[("error", "badfile")]], m));

给予

[[("station_name","Some Station"), ("station_url","http://example.com/")], [("station_name","Some Other Station"), ("station_url","http://other.example.com/")]]

如果您的JSON格式不同,则需要将默认模板调整为of_json

希望有所帮助。

答案 1 :(得分:1)

好问题。我没有为您准确的代码,但我实际上已经能够通过shell向cURL读取HTTP。 (然后,我找到了HTTP请求的内置函数,但那些不适用于你的情况我不会想。)

如果您无法找到直接读取文件的命令,只需使用system()调用cat即可转储该文件。

答案 2 :(得分:0)

我找不到任何直接从liquidsoap读取文件的命令。

您始终可以使用环境变量:

station_name = getenv("STATION_NAME")