JSONのファイルツリー構造を1行に変換するには?

JSONのファイルツリー構造を1行に変換するには?

以下のように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"}}

-ctoフラグは、可能な限り単純な出力を示すjqこのフラグの短いバージョンです。このポイントは、データを変更しない単純なパスフィルタです。--compact-outputjq

キーと値の間のスペースは関係がないため、JSONドキュメントを表現する2つの方法は同じです。 JSONパーサーは問題なく形式(またはその間のすべての形式)を読み取ることができます。

おすすめ記事