我正在编写一个测试,我希望将结果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.
| 归档时间: |
|
| 查看次数: |
8327 次 |
| 最近记录: |