echo
当 ElixirIO
已经绑定到 STDOUT时,您不需要依赖 OS命令。我认为您可能在这里遇到了麻烦,因为您将(包装在系统命令中)的结果IO.inspect
和结果发送到,所以它使事情加倍,至少,这令人困惑,但它也可能是无效的.IO.puts
echo
STDOUT
这对我有用,给定一个包含的简单github.json
文件
{
"sha": "d25341478381063d1c76e81b3a52e0592a7c997f",
"commit": {
"author": {
"name": "Stephen Dolan",
"email": "mu@netsoc.tcd.ie",
"date": "2013-06-22T16:30:59Z"
}
},
"url": "https://api.github.com/repos/stedolan/jq/commits/d25341478381063d1c76e81b3a52e0592a7c997f"
}
parse.exs
与以下脚本一起存储:
contents = File.read!("github.json")
map = Jason.decode!(contents)
json_str = Jason.encode!(map)
IO.puts(json_str)
这种解码和编码表明这是有效的(替代Poison
或任何需要的)。
现在,我可以通过运行以下命令mix run parse.exs
并看到预期的结果。我还可以按预期通过管道输出,例如jq
:
❯ mix run parse.exs | jq '.sha'
"d25341478381063d1c76e81b3a52e0592a7c997f"