Ich versuche, jq
eine JSON-Struktur wie folgt zu analysieren:
{
"a" : 1,
"b" : 2,
"c" : "{\"id\":\"9ee ...\",\"parent\":\"abc...\"}\n"
}
Das heißt, ein Element im JSON ist eine Zeichenfolge mit maskiertem json.
Also habe ich etwas in der Art von
$ jq [.c] myFile.json | jq [.id]
Aber das stürzt mit ab jq: error: Cannot index string with string
Dies liegt daran, dass die Ausgabe von .c eine Zeichenfolge ist, nicht mehr JSON. Wie bringe ich jq dazu, diesen String zu analysieren?
Meine anfängliche Lösung besteht darin, sed zu verwenden, um alle Escape-Zeichen ( \":\"
, \",\"
und \"
) zu ersetzen , aber das ist chaotisch. Ich nehme an, es gibt einen eingebauten Weg jq
, um dies zu tun.
Vielen Dank!
edit: Die hier verfügbare jq-Version ist außerdem:
$ jq --version
jq version 1.3
Ich denke, ich könnte es bei Bedarf aktualisieren.