如何从字节数组中删除所有空格,换行符,制表符?

bod*_*ser 8 json go

我正在编写一个测试,我希望将结果json.Marshal与静态json字符串进行比较:

var json = []byte(`{
    "foo": "bar"
}`)
Run Code Online (Sandbox Code Playgroud)

作为结果json.Marshal没有任何\n,\t和空格我以为我可以很容易做到:

bytes.Trim(json, " \n\t")
Run Code Online (Sandbox Code Playgroud)

删除所有这些字符.但不幸的是,这不起作用.我可以编写自定义修剪功能并使用,bytes.TrimFunc但这对我来说似乎很复杂.

还有什么办法让json字符串"压缩"尽可能少的代码?

最好,博

Sir*_*ius 18

如果JSON字符串中有空格,则使用任何修剪或替换功能都不起作用.你会破坏数据,例如,如果你有类似的东西{"foo": "bar baz"}.

只需使用json.Compact.

这完全符合您的需要,除了输出到a bytes.Buffer.

var json_bytes = []byte(`{
    "foo": "bar"
}`)
buffer := new(bytes.Buffer)
if err := json.Compact(buffer, json_bytes); err != nil {
     fmt.Println(err)
}
Run Code Online (Sandbox Code Playgroud)

有关实例,请参阅http://play.golang.org/p/0JMCyLk4Sg.

  • 要将缓冲区用作字节数组,只需执行“buffer.Bytes()”即可 (4认同)