mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 00:43:26 +08:00
修改部分描述,添加必要的标点符号,补充代码超链接 (#804)
This commit is contained in:
@@ -98,9 +98,9 @@ func main() {
|
||||
}
|
||||
```
|
||||
|
||||
出于安全考虑,在 web 应用中最好使用 `json.MarshalforHTML()` 函数,其对数据执行HTML转码,所以文本可以被安全地嵌在 HTML `<script>` 标签中。
|
||||
出于安全考虑,在 web 应用中最好使用 `json.MarshalforHTML()` 函数,其对数据执行 HTML 转码,所以文本可以被安全地嵌在 HTML `<script>` 标签中。
|
||||
|
||||
`json.NewEncoder()` 的函数签名是 `func NewEncoder(w io.Writer) *Encoder`,返回的Encoder类型的指针可调用方法 `Encode(v interface{})`,将数据对象 v 的json编码写入 `io.Writer` w 中。
|
||||
`json.NewEncoder()` 的函数签名是 `func NewEncoder(w io.Writer) *Encoder`,返回的 Encoder 类型的指针可调用方法 `Encode(v interface{})`,将数据对象 v 的 json 编码写入 `io.Writer` w 中。
|
||||
|
||||
JSON 与 Go 类型对应如下:
|
||||
|
||||
@@ -109,7 +109,7 @@ JSON 与 Go 类型对应如下:
|
||||
- string 对应 JSON 的 string
|
||||
- nil 对应 JSON 的 null
|
||||
|
||||
不是所有的数据都可以编码为 JSON 类型:只有验证通过的数据结构才能被编码:
|
||||
不是所有的数据都可以编码为 JSON 类型,只有验证通过的数据结构才能被编码:
|
||||
|
||||
- JSON 对象只支持字符串类型的 key;要编码一个 Go map 类型,map 必须是 map[string]T(T是 `json` 包中支持的任何类型)
|
||||
- Channel,复杂类型和函数类型不能被编码
|
||||
@@ -120,11 +120,11 @@ JSON 与 Go 类型对应如下:
|
||||
|
||||
`UnMarshal()` 的函数签名是 `func Unmarshal(data []byte, v interface{}) error` 把 JSON 解码为数据结构。
|
||||
|
||||
示例12.16中对 vc 编码后的数据为 `js` ,对其解码时,我们首先创建结构 VCard 用来保存解码的数据:`var v VCard` 并调用 `json.Unmarshal(js, &v)`,解析 []byte 中的 JSON 数据并将结果存入指针 &v 指向的值。
|
||||
示例 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
|
||||
|
||||
### 解码任意的数据:
|
||||
|
||||
|
Reference in New Issue
Block a user