私は次のjq
ようなJSON構造を解析しようとしています:
{
"a" : 1,
"b" : 2,
"c" : "{\"id\":\"9ee ...\",\"parent\":\"abc...\"}\n"
}
つまり、JSONの要素は、エスケープされたjsonを含む文字列です。
だから、私はの線に沿って何かを持っています
$ jq [.c] myFile.json | jq [.id]
しかし、それはでクラッシュします jq: error: Cannot index string with string
これは、.cの出力が文字列であり、JSONではないためです。jqにこの文字列を解析させるにはどうすればよいですか?
私の最初のソリューションは、すべてのエスケープ文字を置き換えるためにsedを使用することです(\":\"
、\",\"
および\"
)が、厄介者のことを、私はに組み込まれている方法がありますと仮定しjq
、これを行うには?
ありがとう!
編集:また、ここで利用可能なjqバージョンは次のとおりです。
$ jq --version
jq version 1.3
必要に応じて更新できると思います。