【发布时间】:2021-10-25 14:59:32
【问题描述】:
我有类似内容的文件,但我想让它成为一个有效的 JSON,我需要在双引号中添加一行的每个单词。 我在 StackOverflow 上尝试了现有的答案,但没有一个能正常工作。
{container:"proxy",
endpoint:"proxy",
exception:"ApiException"}
转成以下格式:
{"container":"proxy",
"endpoint":"proxy",
"exception":"ApiException"}
【问题讨论】:
-
运气好的话,文件可以被视为有效的
jq过滤器:jq -nf pseudojson.txt应该输出格式正确的 JSON。有很多极端情况可能会失败,但可能不会比尝试自己解析数据更糟糕,而且更容易。 -
很遗憾,jq 无法解析它,因为它不是有效的 JSON 格式。
-
我没说要把它解析成JSON;我说过将它用作
jq过滤器,它将创建 JSON。-f从文件中读取过滤器,而不是在命令行中提供它,-n阻止jq尝试从标准输入中读取。您的伪 JSON 看起来非常像创建对象的过滤器。例如,jq -n '{foo: "bar"}输出{"foo": "bar"}。 -
你完全正确!行得通!
-
很高兴听到您的意见表现得很好:)