2017-04-20 1 views
3

これは簡単にできるはずです...私は何かエラーがあるように思えますが、いくつかのキー(理想的にはjq)の名前を変更します。以下の例JSONは:jqの使用方法キーの名前を何か他のものに置き換えるにはどうすればいいですか?

] 
{ 
    "fruit": "strawberry", 
    "veg": "apple", 
    "worker": "gardener" 
} 
] 

私は(最も簡単です何かたとえば、)fruit2にベジタリアンキーと仕事にも労働者のキーの名前を変更したいと思います。

私は、これがSEDで可能であると認識が、私はJQとグリップを取得しようとしている:)

答えて

2

、有効なJSONは次のようになります。

jq '[.[] | .["fruit2"] = .veg | .["job"] = .worker | del(.veg, .worker)]' file 

出力:

[ 
    { 
    "fruit": "strawberry", 
    "fruit2": "apple", 
    "job": "gardener" 
    } 
] 
+0

パーフェクト、この

[ { "fruit": "strawberry", "veg": "apple", "worker": "gardener" } ] 

は、以下のJQアプローチを使用します私のために働く:) – user3229731

+0

@ user3 229731、あなたは大歓迎です – RomanPerekhrest

2

キー(with_entriesです:-)。あなたがオブジェクトの配列を持っているので、あなたがmap(...)で上記を包むことができ、あなたの場合は

with_entries(if .key == "veg" then .key = "fruit2" else . end) 

:例えば、単一のオブジェクトを与えられました。まず

関連する問題