- 主题:问一个json.Unmarshal的问题
学习到go操作json数据这块,官方自带的库里,json.Unmarshal([]byte(JSON_DATA), &res)。
好奇想问下,为啥json.Unmarshal的第一个参数不能是直接传入字符串的JSON_DATA,而要传入一个byte类型的切片呢(在json.Unmarshal内部[]byte(JSON_DATA)不行吗)?这对使用者(或者初学者)不是更友好吗?
--
修改:huaxinjuedui FROM 183.69.211.*
FROM 183.69.211.*
你从文件、从网络获取的数据,默认都是 []byte 。而你要解析的 json 数据,基本是来自于这些地方吧。所以说用 []byte 还是会更方便。
【 在 huaxinjuedui (唐僧哥哥) 的大作中提到: 】
: 学习到go操作json数据这块,官方自带的库里,json.Unmarshal([]byte(JSON_DATA), &res)。
: 好奇想问下,为啥json.Unmarshal的第一个参数不能是直接传入字符串的JSON_DATA,而要传入一个byte类型的切片呢(在json.Unmarshal内部[]byte(JSON_DATA)不行吗)?这对使用者(或者初学者)不是更友好吗?
--
FROM 220.181.41.*
明白了,谢谢!
【 在 world 的大作中提到: 】
: 你从文件、从网络获取的数据,默认都是 []byte 。而你要解析的 json 数据,基本是来自于这些地方吧。所以说用 []byte 还是会更方便。
:
--
FROM 183.69.210.*
因为很多 API 接收到的数据本来就是 []byte。
在 Go 里面 []byte 的性能比 string 要好,因为 string 是只读的,不好修改,一旦修改必然产生副本,这意味着有 copy 动作。
【 在 huaxinjuedui (唐僧哥哥) 的大作中提到: 】
: 学习到go操作json数据这块,官方自带的库里,json.Unmarshal([]byte(JSON_DATA), &res)。
: 好奇想问下,为啥json.Unmarshal的第一个参数不能是直接传入字符串的JSON_DATA,而要传入一个byte类型的切片呢(在json.Unmarshal内部[]byte(JSON_DATA)不行吗)?这对使用者(或者初学者)不是更友好吗?
--
FROM 27.38.241.*
谢谢!明白了,对go了解得还是不够全面深入。。
【 在 flw 的大作中提到: 】
: 因为很多 API 接收到的数据本来就是 []byte。
: 在 Go 里面 []byte 的性能比 string 要好,因为 string 是只读的,不好修改,一旦修改必然产生副本,这意味着有 copy 动作。
:
--
FROM 183.69.208.*