以下のようにJSONファイルがあります。
{
"Foo": "ABC",
"Bar": "20090101100000",
"Quux": {
"QuuxId": 1234,
"QuuxName": "Sam"
}
}
次のように変換したいと思います。
{"Foo":"ABC","Bar":"20090101100000","Quux":{"QuuxId":1234,"QuuxName":"Sam"}}
'\n'、'\t'、および '' 文字を削除しようとしましたが、目的の形式を取得できませんでした。どのように変換できますか?
答え1
最も安全な方法は、JSONパーサーを使用することです。そうしないと、技術的にデータを修正するリスクがあります。
使用jq
:
$ jq -c . file.json
{"Foo":"ABC","Bar":"20090101100000","Quux":{"QuuxId":1234,"QuuxName":"Sam"}}
-c
toフラグは、可能な限り単純な出力を示すjq
このフラグの短いバージョンです。このポイントは、データを変更しない単純なパスフィルタです。--compact-output
jq
キーと値の間のスペースは関係がないため、JSONドキュメントを表現する2つの方法は同じです。 JSONパーサーは問題なく形式(またはその間のすべての形式)を読み取ることができます。