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

數據我需要刪除有關的以下條件 基礎Testtag如果試驗值> 50然後更換測試=主要 如果試驗值< 50然後與測試=次要取基於關鍵

所以更換這裏請求的輸出如下所示。

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

你這個序列化到內容的所有對象?像在Java或C#中? – Coder

+0

感謝Alex的格式。我需要它在Perl/Unix中。 ! –

+0

#在/ usr/bin中/ perl的 使用JSON; 使用Data :: Dumper; $ JSON =「{ 「標籤」:[{ 「信心」:99.25341796875, 「名」: 「滑板」},{ 「信心」:9.25341796875, 「名」: 「運動」},{ 「信心」:49.24723052978516, 「Name」:「People」}]}'; $文本= decode_json($ JSON); print Dumper $ text; $ key =「Confidence」; 如果(存在($文本{$鍵})) { 打印 「實測值置信\ n」 個; #我需要申請使用置信條件的置信度< 50 or > 50並替換標記與monor和主要 } 否則 { 打印「找不到信心」; } 這是我做的這麼遠。 PL建議 –

回答

1

jq解決方案:

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

輸出:

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

@PraveenPokharia,我不是亞歷 – RomanPerekhrest

+0

謝謝你這麼多RomanPerekhrest .....ü[R awesum人!!!! –

+0

我無法將上述命令的輸出重定向到文件。請建議。它顯示在屏幕上。 –