Я пытаюсь найти имя человека, у которого есть предмет и его оценка.Но я получаю индексный массив.Эта проблема отличается от других вопросов, задаваемых в Stackoverflow, поскольку он выдает ошибку для параметра, который находится не в [], а в {}
jq -r '.[] | select(.result."*value*".Score.English) | {Name: .result."*value*".name, Subject: .result."*value*".Score.English} | @text' test.txt | sed 's/^{\|}$//g; s/,/\n/'
INPUT JSON FILE
[{
"host": "testserver",
"hostclass": "Unknown",
"result": {
"*value*": [
{
"sessionId": "000001",
"name": "ABC",
"Age": "21",
"Score": {
"English": "A+",
"Mathematics": "B-",
"String Theory": "C+"
}
},
{
"sessionId": "000001",
"name": "CDE",
"Age": "21",
"Score": {
"English": "A-",
"German": "B-",
"French": "C+"
}
},
{
"sessionId": "000001",
"name": "EFG",
"Age": "21",
"Score": {
}
},
{
"sessionId": "000001",
"name": "XYZ",
"Age": "21"
}]
}
}]
OUTPUT:
Name: ABC
Subject : A+
Name: CDE
Subject : A-
ОШИБКА:
jq: error (at test.txt:39): Cannot index array with string "Score"
как я могу исправить эту ошибку?