jq filtering - Cannot index array with string "Score"

Solution 1:

You need to iterate through the "*value*" children with "*value*"[]. Here is a solution that I tested and it produces the output you want:

cat test.txt | jq -r '.[].result."*value*"[] | select(.Score.English) | "Name: "+.name+"\nSubject: "+.Score.English'