我正在尝试jq解析一个JSON结构,如:
jq
{ "a" : 1, "b" : 2, "c" : "{\"id\":\"9ee ...\",\"parent\":\"abc...\"}\n" }
也就是说,JSON中的元素是带有转义json的字符串。
所以,我有一些类似的东西 $ jq [.c] myFile.json | jq [.id]
$ jq [.c] myFile.json | jq [.id]
但这崩溃了 jq: error: Cannot index string with string
jq: error: Cannot index string with string
这是因为.c的输出是字符串,而不是JSON。如何让jq解析此字符串?
我最初的解决方案是使用sed将替换所有的逃生字符(\":\",\",\"和\"),但凌乱的,我认为有内置的方式jq做到这一点?
\":\"
\",\"
\"
谢谢!
编辑:另外,这里可用的jq版本是:
$ jq --version jq version 1.3
我想我可以根据需要更新它。
jq具有fromjson内置功能:
fromjson
jq '.c | fromjson | .id' myFile.json
fromjson 是在1.4版中添加的。