Belirli alanları almak ve değişkenlere koymak için bir kıvrılma isteğini jq ile filtrelemeye çalışıyorum. Başlangıçta, bunun gibi temel bir kıvrılma isteği kullanıyordum:
myResponse=$(curl -u myUsername:myPassword -XGET "https://myWebsite.com/_count?pretty&q=TEST")
Kullanıcı adımı ve şifremi veriyorum ve 'TEST' teriminin kaç kez mevcut olduğuna dair bir rakam alıyorum, ki bu oldukça hoş bir şekilde json olarak döndürülüyor. Bu yanıt myResponse adlı bir değişkene konulur.
Json'dan belirli bir sayım değeri elde etmek için bunu filtrelemek için jq kullandım:
count=`echo $myResponse | jq -r '.count'`
Bu çalıştı ve bana bir sayı sağladı.
Şimdi biraz denemek istedim. Curl isteğinden yanıt almanın yanı sıra, yanıt kodunu da (200, 404 vb.) Almak istedim. Böylece curl isteğimi aşağıdakilere uyarladım:
myResponse=$(curl --write-out %{http_code} --silent -u myUsername:myPassword -XGET "https://myWebsite.com/_count?pretty&q=DEBUG")
Bu başarıyla hem JSON yanıtını verdi, sonra bundan sonra http yanıt kodunu sayı olarak döndürdü.
Ancak, bu bir kez jq 'a iletildiğinde aşağıdaki hatayı alıyorum:
jq: error: Cannot index number with string
Bu hatayı nasıl çözebilirim? Sadece json olduğunda jq gayet iyi idare etti, ancak bu yanıt kodu sona erdikten hemen sonra çözümlenemez.
Teşekkürler