jq - 在keyname中转义反斜杠

问题描述 投票:2回答:1

我有一个带有\的密钥,我似乎无法使用jq访问它。任何帮助表示赞赏。

$ cat /tmp/yo
{
  "kubectl.kubernetes.io\last-applied-configuration": "test"
}

$ cat /tmp/yo | jq .["kubectl.kubernetes.io\last-applied-configuration"]
parse error: Invalid escape at line 2, column 52
linux jq
1个回答
1
投票

这不是有效的JSON文档。必须转义JSON中的反斜杠才能包含在文字字符串中。针对生成此无效内容的任何工具报告错误。


在JSON中包含反斜杠看起来像:

{
  "kubectl.kubernetes.io\\last-applied-configuration": "test"
}

如果您有这样一个有效的文件,那么您可以使用:

jq '.["kubectl.kubernetes.io\\last-applied-configuration"]' </tmp/yo
© www.soinside.com 2019 - 2024. All rights reserved.