Próbuję dostać jq
do analizowania struktury JSON jak:Zastosowanie jq do analizowania JSON String
{
"a" : 1,
"b" : 2,
"c" : "{\"id\":\"9ee ...\",\"parent\":\"abc...\"}\n"
}
Oznacza to, że element w JSON jest ciągiem z zbiegłego JSON.
Tak, mam coś na wzór $ jq [.c] myFile.json | jq [.id]
Ale to wywala z jq: error: Cannot index string with string
To dlatego, że wyjście .c jest ciągiem znaków, nie więcej JSON. Jak uzyskać jq do przeanalizowania tego ciągu?
Moje pierwsze rozwiązanie jest użycie sed zastąpić wszystkie znaki ewakuacyjne (\":\"
, \",\"
i \"
) ale to niechlujny, zakładam, że istnieje sposób wbudowane jq
to zrobić?
Dzięki!
edit: Również wersja jq dostępny jest tutaj:
$ jq --version
jq version 1.3
Chyba mogę go aktualizować w razie potrzeby.
To pytanie również pomaga, jeśli szukasz: "Jak uwolnić ciąg json za pomocą jq?" – k0pernikus