Le contenu est
{
"properties" : {
"CloudSanityPassed" : [ "true" ],
"GITCOMMIT" : [ "test1" ],
"buildNumber" : [ "54" ],
"jobName" : [ "InveergDB-UI" ]
},
"uri" : "http://ergctory:8081/aergergory/api/storage/test-reergerglease-reergpo/cergom/cloergud/waf/ergregBUI/1ergerggregSHOT/ergregerg-34.Zip"
}
J'utilise cette commande
.[] | ."CloudSanityPassed" | .[]
Et je reçois ce message
jq: error (at <stdin>:8): Cannot index string with string "CloudSanityPassed"
"true"
exit status 5
J'obtiens, ce que je veux ("vraie" valeur), mais il y a une erreur de sortie. Pourriez-vous m'expliquer comment l'éviter et pourquoi cela se produit-il?
Selon le manuel jq , .[]
obtient les valeurs de l'objet lorsqu'il est appliqué à l'objet.
Vous obtenez donc deux objets, un pour la valeur de "properties"
et un autre pour la valeur de "uri"
:
{
"CloudSanityPassed": [
"true"
],
"GITCOMMIT": [
"test1"
],
"buildNumber": [
"54"
],
"jobName": [
"InveergDB-UI"
]
}
"http://ergctory:8081/aergergory/api/storage/test-reergerglease-reergpo/cergom/cloergud/waf/ergregBUI/1ergerggregSHOT/ergregerg-34.Zip"
jq
essaie d'appliquer ."CloudSanityPassed"
opérateur à chaque objet.
Étant donné que l'ancien objet est un dictionnaire (ou hachage), vous pouvez appliquer ."CloudSanityPassed"
et obtenez la valeur ["true"]
, cependant, ce dernier est une chaîne simple que vous ne pouvez pas appliquer ."CloudSanityPassed"
, donc jq
renvoie une erreur ici.
Peut-être que la commande que vous voulez est simplement .properties.CloudSanityPassed
.