Próbuję jq
przeanalizować strukturę JSON, taką jak:
{
"a" : 1,
"b" : 2,
"c" : "{\"id\":\"9ee ...\",\"parent\":\"abc...\"}\n"
}
Oznacza to, że element w formacie JSON jest ciągiem znaków ze zmienionym kodem JSON.
Więc mam coś w stylu
$ jq [.c] myFile.json | jq [.id]
Ale to się psuje jq: error: Cannot index string with string
Dzieje się tak, ponieważ wyjściem .c jest ciąg znaków, a nie więcej JSON. Jak sprawić, by jq przeanalizował ten ciąg?
Moje pierwsze rozwiązanie jest użycie sed zastąpić wszystkie znaki ewakuacyjne ( \":\"
, \",\"
i \"
), ale to jest brudny, zakładam istnieje sposób wbudowane jq
to zrobić?
Dzięki!
edycja: Również dostępna tutaj wersja jq to:
$ jq --version
jq version 1.3
Myślę, że w razie potrzeby mógłbym to zaktualizować.