私は、互いに似ているが同一ではないオブジェクトを含むJSONファイルを持っています。すべてのオブジェクトにはメインIDがありますが、他のキーがオブジェクト内に存在する場合と存在しない場合があります。JQを使用したキーの存在または非存在に作用
私の質問:オブジェクト内の特定のキーについては、値が存在すればそれをどのように出力するのですか?そうでない場合は "NA"のようなものです。
サンプル入力:
{
"DBInstances": [
{
"Identifier": 101,
"foo": "some_value",
"bar": 60,
"Model": "A"
},
{
"Identifier": 102,
"foo": "some_value",
"Model": "B"
}
]
}
所望の出力:
{
"Identifier": 101,
"foo": "some_value",
"bar": 60,
"Model": "A"
},
{
"Identifier": 102,
"foo": "some_value",
"bar": "NA",
"Model": "B"
}
私は(一部)働く機能を作成した非存在のためではなく、全く存在について:
def exist(element):
if (has(element) == true)
then { element: "true" }
else { element: "NA" }
end;
私が電話したとき:
exist("bar")
JQが元のキーの名前と値ではなく "要素"と "真"を印刷するという点で、存在する部分は完全に間違っています。
「存在しない」部分については、「NA」は元のキー名ではなく「要素」と表示されます。
私はJQ 1.3で作業しています。
def exist(element):
if has(element)
then { (element): .[element] }
else { (element): "NA" }
end;
これはJQ 1.3でテストされていますが、より新しいバージョンにアップグレードしてみてください。