如何将 JSON 的文件树结构转换为单行?

如何将 JSON 的文件树结构转换为单行?

我有一个 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-output,将提示jq生成尽可能最紧凑的输出。该点是一个简单的直通过滤器,不会修改任何数据。

请注意,表示 JSON 文档的两种方式是等效的,因为键和值之间的任何空格都是无关的。 JSON 解析器可以毫无问题地读取任一格式(或介于两者之间的任何格式)。

相关内容