2012-08-11 74 views
3

我需要從JSON編碼文件中提取變量並將其分配給Bash中的變量。使用bash提取JSON變量

摘錄......從file.json

"VariableA": "VariableA data", 
    "VariableB": [ 
     "VariableB1", 
     "VariableB2", 
     "VariableB3", 
     "VariableB3" 
    ], 

我在什麼地方這個

variableA=$(fgrep -m 1 "VariableA" file.json) 

得到,但它返回整條生產線。我只想要數據

對於VariableB,我需要用逗號分隔值替換列表。

我已經看過awk,sed,grep,regexpressions,並且確實給出了學習曲線......需要知道使用哪一個或更好的解決方案。

感謝您的建議......但是這是完美的 的git://github.com/kristopolous/TickTick.git

回答

1

有強大的命令行工具JSON jq

提取單個值很簡單:

variableA=$(jq .VariableA file.json) 

對於逗號分隔的數組內容試試這個

variableB=$(jq '.VariableB | @csv' file.json) 

variableB=$(jq '.VariableB | .[]' file.json | tr '\n' ',' | head -c-1)