У меня есть этот JSON с данными измерений:
{
"errorCode":0,
"statusDataInfo":{
"function-status-text-005":{
"textValue":"2006-0310",
"type":"basic-text"
},
"function-status-text-027":{
"type":"simple-value",
"value":"50"
},
"function-status-text-049":{
"type":"simple-value",
"value":""
},
"function-status-text-025":{
"type":"simple-value",
"value":"43"
},
"function-status-text-047":{
"type":"simple-value",
"value":""
},
"function-status-text-068":{
"type":"simple-value",
"value":"0"
},
"function-status-text-009":{
"type":"simple-value",
"value":"22"
},
"function-status-text-007":{
"textValue":"2006-0325",
"type":"basic-text"
},
"function-status-text-029":{
"type":"simple-value",
"value":""
},
"function-status-text-041":{
"textValue":"2006-0960",
"type":"basic-text"
},
"function-status-text-063":{
"type":"simple-value",
"value":"3"
},
"function-status-text-060":{
"type":"simple-value",
"value":"67"
},
"function-status-text-023":{
"type":"simple-value",
"value":""
},
"function-status-text-045":{
"textValue":"2006-0300",
"type":"basic-text"
},
"function-status-text-021":{
"type":"simple-value",
"value":""
},
"function-status-text-043":{
"textValue":"2006-0300",
"type":"basic-text"
},
"function-status-text-065":{
"type":"simple-value",
"value":"0"
},
"function-status-text-015":{
"type":"simple-value",
"value":"0"
},
"function-status-text-037":{
"type":"simple-value",
"value":"1550"
},
"function-status-text-058":{
"type":"simple-value",
"value":"163"
},
"function-status-text-013":{
"type":"simple-value",
"value":"22"
},
"function-status-text-035":{
"type":"simple-value",
"value":"11.22"
},
"function-status-text-019":{
"type":"simple-value",
"value":""
},
"function-status-text-017":{
"type":"simple-value",
"value":"24"
},
"function-status-text-039":{
"textValue":"2006-0940",
"type":"basic-text"
},
"function-status-text-051":{
"type":"simple-value",
"value":""
},
"function-status-text-056":{
"type":"simple-value",
"value":"0"
},
"function-status-text-011":{
"type":"simple-value",
"value":"22"
},
"function-status-text-031":{
"type":"simple-value",
"value":"19"
},
"function-status-text-053":{
"type":"simple-value",
"value":"-"
}
},
"statusBackgroundDataInfo":{
"0xA0":{
"value":"0"
},
"0x20":{
"value":"0"
},
"0xE1":{
"value":"0"
},
"0xE0":{
"value":"1"
},
"0xFA":{
"value":"0"
},
"0xF0":{
"value":"1"
},
"0x80":{
"value":"1"
},
"0xF9":{
"value":"1"
},
"0xC4":{
"value":"0"
}
}
}
И мне нужен ассоциативный массив bash, из которого я могу просто получить доступ к значениям из JSON следующим образом:
myArray[function-status-text-005][type]
myArray[function-status-text-005][value]
Я перепробовал множество решений от Stackoverflow и Интернета, но не могу заставить их работать. Любая помощь будет оценена
С уважением
РЕДАКТИРОВАТЬ
Я пробовал решение в этой ссылке Stackoverflow , но это не такработай. Ему нужен массив верхнего уровня, а мой - neatens в statusDataInfo
EDIT2 Благодаря @Cyrus я получил еще один шаг:
jsonValues=$(cat data.json | jq -r '.statusDataInfo | to_entries|map("\(.key)=\(.value)")|.[]')
for i in "${!jsonValues[@]}"
do
echo "key : $i"
echo "value: ${jsonValues[$i]}"
done
, готовый кАссоциированный массив, НО он имеет только один ключ с соответствующим значением, содержащим всю информацию из json:
key : 0
value: function-status-text-005={"textValue":"2006-0310","type":"basic-text"}
function-status-text-027={"type":"simple-value","value":"50"}
function-status-text-049={"type":"simple-value","value":""}
function-status-text-025={"type":"simple-value","value":"43"}
function-status-text-047={"type":"simple-value","value":""}
function-status-text-068={"type":"simple-value","value":"0"}
function-status-text-009={"type":"simple-value","value":"22"}
function-status-text-007={"textValue":"2006-0325","type":"basic-text"}
function-status-text-029={"type":"simple-value","value":""}
function-status-text-041={"textValue":"2006-0960","type":"basic-text"}
function-status-text-063={"type":"simple-value","value":"3"}
function-status-text-060={"type":"simple-value","value":"67"}
function-status-text-023={"type":"simple-value","value":""}
function-status-text-045={"textValue":"2006-0300","type":"basic-text"}
function-status-text-021={"type":"simple-value","value":""}
function-status-text-043={"textValue":"2006-0300","type":"basic-text"}
function-status-text-065={"type":"simple-value","value":"0"}
function-status-text-015={"type":"simple-value","value":"0"}
function-status-text-037={"type":"simple-value","value":"1550"}
function-status-text-058={"type":"simple-value","value":"163"}
function-status-text-013={"type":"simple-value","value":"22"}
function-status-text-035={"type":"simple-value","value":"11.22"}
function-status-text-019={"type":"simple-value","value":""}
function-status-text-017={"type":"simple-value","value":"24"}
function-status-text-039={"textValue":"2006-0940","type":"basic-text"}
function-status-text-051={"type":"simple-value","value":""}
function-status-text-056={"type":"simple-value","value":"0"}
function-status-text-011={"type":"simple-value","value":"22"}
function-status-text-031={"type":"simple-value","value":"19"}
function-status-text-053={"type":"simple-value","value":"-"}