JSON‘编码/解码’和JSON‘编组/解组’有什么区别?
尝试学习如何用golang编写RESTFUL api,但不确定JSON“编码”和“编组”之间的区别是什么,或者它们是否相同?
发布于 2020-06-17 05:18:47
JSON‘编码/解码’和JSON‘编组/解组’有什么区别?
当然,Marshaling和Encoding是不同的概念,在维基百科(或其他地方)上更好地解决了这一问题。但简而言之,对象被编组为JSON编码的字符串。
另外,不要让Golang的json.NewEncoder / (json.Encoder).Encode和json.Marshal方法让您感到困惑。它们都将对象编组为JSON编码的字符串。不同之处在于编码器,首先将对象编组为JSON编码字符串,然后将数据写入缓冲流(或维基百科上的Data Buffer )。因此,编码器比更简单的json.Marshal使用更多的代码和内存开销。
您也可以在Golang源代码中看到这一点:
https://golang.org/src/encoding/json/encode.go?s=6458:6501#L148
:
通常,如果需要将JSON编码的字符串发送到文件系统或作为HTTP响应,则可能需要使用缓冲流。但是,您也可以使用pipe在没有缓冲流的情况下发送这个JSON编码字符串。
https://stackoverflow.com/questions/33061117
复制相似问题