go json

[TOC]

encode

[]byte 特殊问题

json marshal []byte 有两种方式:

  • 通过定义struct 定义 []byte字段,json.Marshal(), 内部经过base64 encoding 处理。用户不用处理
  • Unmarshal时,使用 map[string]interface{},接收Unmarshal后的数据,json就会试图转化成string,unmarshal 后得不到原来数据。

测试链接:https://play.golang.org/p/zTTMo3kmeHQ

decode

Unmarshal 解析字段优先级,假设json字段为"Foo"

  1. Exported Field with Tag of "Foo"
  2. Exported Field named Foo
  3. Exported Field named "Foo", "FoO" or some other case-insensitive match of "Foo"

参考

  • https://golang.org/pkg/encoding/json/#Marshal
  • base64: https://zh.wikipedia.org/wiki/Base64

你可能感兴趣的:(go json)