2017-07-14 1 views
1
{ "Labels": [ {"Test": 99.25341796875, "Name": "Skateboard" }, { "Test": 9.25341796875, "Name": "Sport" }, { "Test": 49.24723052978516, "Name": "People" }]} 

Je dois enlever la Testtag sur la base des conditions ci-dessous si la valeur de test> 50 puis remplacez test = Major si la valeur de test < 50 remplacer puis avec Test = MinorFetch des données basées sur la touche

si ici la sortie demandée est comme ci-dessous.

{ "Labels": [ {"High": 99.25341796875, "Name": "Skateboard" }, { "Low": 9.25341796875, "Name": "Sport" }, { "Low": 49.24723052978516, "Name": "People" }]} 
+0

vous sérialisation ce contenu en objets du tout? comme en Java ou C#? – Coder

+0

Merci Alex pour le formatage. J'en ai besoin en Perl/Unix. –

+0

#!/Usr/bin/perl utilisez JSON; use Données :: Dumper; $ json = '{"Labels": [{"Confidence": 99.25341796875, "Nom": "Skateboard"}, {"Confiance": 9.25341796875, "Nom": "Sport"}, {"Confiance": 49.24723052978516, "Nom": "Personnes"}]} '; $ text = decode_json ($ json); print Dumper $ text; $ key = "Confiance"; if (exists ($ text {$ key})) { print "Confiance trouvée \ n"; #sed je dois appliquer en utilisant chekcing condition de confiance < 50 or > 50 et remplacer tag avec monor et majeur } d'autre { imprimer "Impossible de trouver la confiance"; } C'est ce que j'ai fait jusqu'à présent. Pl suggérer –

Répondre

1

jq solution:

jq '.Labels |= map(.[(if .Confidence > 50 then "High" else "Low" end)]= .Confidence | del(.Confidence))' yourfile.json 

La sortie:

{ 
    "Labels": [ 
    { 
     "Name": "Skateboard", 
     "High": 99.25341796875 
    }, 
    { 
     "Name": "Sport", 
     "Low": 9.25341796875 
    }, 
    { 
     "Name": "People", 
     "Low": 49.24723052978516 
    } 
    ] 
} 
+0

@PraveenPokharia, je ne suis pas Alex – RomanPerekhrest

+0

Merci beaucoup RomanPerekhrest ..... u r awesum man !!!! –

+0

Je ne suis pas en mesure de rediriger la sortie de la commande ci-dessus vers un fichier. Veuillez suggérer. Il est affiché sur l'écran. –