From 37e15f1873482406d60eb2f14b15b2f937fabb0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E5=A4=A9=E9=BE=99w?= Date: Sat, 15 Jan 2022 16:39:45 +0800 Subject: [PATCH] Update 12.9.md (#820) Co-authored-by: Joe Chen --- eBook/12.9.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eBook/12.9.md b/eBook/12.9.md index 8ef3698..9d7d2ba 100644 --- a/eBook/12.9.md +++ b/eBook/12.9.md @@ -11,7 +11,7 @@ - 数据结构 --> 指定格式 = `序列化` 或 `编码`(传输之前) - 指定格式 --> 数据结构 = `反序列化` 或 `解码`(传输之后) -序列化是在内存中把数据转换成指定格式(data -> string),反之亦然(string -> data structure) +序列化是在内存中把数据转换成指定格式(data -> string),反之亦然(string -> data)。 编码也是一样的,只是输出一个数据流(实现了 io.Writer 接口);解码是从一个数据流(实现了 io.Reader)输出到一个数据结构。 @@ -118,13 +118,13 @@ JSON 与 Go 类型对应如下: ### 反序列化: -`UnMarshal()` 的函数签名是 `func Unmarshal(data []byte, v interface{}) error` 把 JSON 解码为数据结构。 +`json.Unmarshal()` 的函数签名是 `func Unmarshal(data []byte, v interface{}) error` 把 JSON 解码为数据结构。 示例 12.16 中对 vc 编码后的数据为 `js` ,对其解码时,我们首先创建结构 VCard 用来保存解码的数据:`var v VCard` 并调用 `json.Unmarshal(js, &v)`,解析 []byte 中的 JSON 数据并将结果存入指针 &v 指向的值。 虽然反射能够让 JSON 字段去尝试匹配目标结构字段;但是只有真正匹配上的字段才会填充数据。字段没有匹配不会报错,而是直接忽略掉。 -(练习 15.2b [twitter_status_json.go](exercises/chapter_15/twitter_status_json.go) 中用到了 Unmarshal +(练习 15.2b [twitter_status_json.go](exercises/chapter_15/twitter_status_json.go) 中用到了 Unmarshal) ### 解码任意的数据: