从命令行运行Go嵌套JSON

时间:2016-02-05 10:48:14

标签: unix go command-line

我可以考虑如何使其工作的解决方法,但我有兴趣了解是否有针对此特定问题的解决方案。

我有一个需要json字符串争论的go程序:

go run main.go "{ \"field\" : \"value\" }"

到目前为止没有问题。但是,如果其中一个json值是另一个json字符串,我是否可以从命令行运行?

go run main.go "{ \"json-string\" : \"{\"nestedfield\" : \"nestedvalue\"}\" }"

似乎添加转义字符错误地匹配开始和结束引号。我是不是很清楚这是怎么做的,或者是这样的(这是我正在酝酿的一面)根本不可能吗?

重申一下,这是一个引起我好奇心的问题 - 我知道其他方法 - 我希望得到与此特定问题相关的输入。

2 个答案:

答案 0 :(得分:1)

为什么不直接将json配置文件放到文件中,并使用flag

为您的应用程序提供配置文件名

答案 1 :(得分:0)

根据来自wiredeye的反馈,我走了参数路线。我已修改程序以继续运行:

go run main.go field:value field2:value json-string:"{\"nestedfield\":nestedvalue}"

然后我可以迭代os.Args并在我的程序中获取嵌套的json。我没有直接使用标志,因为我不知道程序的输入数量,这需要我使用重复标志(不支持)或将标志解析为集合(不是似乎得到了支持)。

谢谢wiredeye