使用 PowerShell 缩小 JSON?

Minify JSON with PowerShell?

有没有办法缩小(在这种情况下删除所有空格)一个 JSON 文件来转换这个

[
    0.000005,
    0,
    0
],
[
    219.740502,
    0.003449,
    4.177065
],
[
    45.210918,
    0.003365,
    -16.008996
],
[
    344.552785,
    0.030213,
    277.614965
],

为此使用 PowerShell

[0.000005,0,0],[219.740502,0.003449,4.177065],[45.210918,0.003365,-16.008996],[344.552785,0.030213,277.614965],

我已经在线尝试了几个 "minifiers" 但是该文件包含超过 100,000 个数组并且基本上破坏了所有在线压缩器。有什么想法吗?

您可以使用基本的正则表达式轻松做到这一点。如果您在文件中有此内容,请尝试以下操作。您必须包含 -Raw 参数,否则文件将一次传递一行,这将阻止正则表达式删除换行符。

(Get-Content C:\Some\File.json -Raw) -replace '\s','' | out-file C:\some\outfile.json

仅供参考,当您操作 PowerShell 对象并将它们转换为 JSON (ConvertTo-Json) 时,您得到了 -compress 参数:

New-Object -TypeName PSCustomObject -Property @{Name="Hugot";GivenName="Victor"} | ConvertTo-Json -Compress

给出:

{"GivenName":"Victor","Name":"Hugot"}

添加到 JP 的回答中,

(ConvertFrom-Json $json) | ConvertTo-Json -Compress

如果您已经 json,这将很有用。如果你不在前面做 ConvertFrom-Json,那么它将用 \r\n 编码换行符,用 \".

编码引号