вопрос
json
При использовании в пакете переменные в структуре не добавляются.tag
Можно ли нормально конвертироватьjson
в поле?
как ответить
-
если переменная
首字母小写
, тогдаprivate
. в любом случае不能转
, потому что он недоступен反射信息
. -
если переменная
首字母大写
, тогдаpublic
.-
不加tag
, который обычно может быть преобразован вjson
поля вjson
Имя внутреннего поля и структура внутреннего поля原名一致
. -
加了tag
,отstruct
Переменаjson
когда,json
Имя поляtag
Имя поля в поле, исходное имя поля бесполезно.
-
Пример
Узнайте больше на примере.
package main
import (
"encoding/json"
"fmt"
)
type J struct {
a string //小写无tag
b string `json:"B"` //小写+tag
C string //大写无tag
D string `json:"DD"` //大写+tag
}
func main() {
j := J {
a: "1",
b: "2",
C: "3",
D: "4",
}
fmt.Printf("转为json前j结构体的内容 = %+v\n", j)
jsonInfo, _ := json.Marshal(j)
fmt.Printf("转为json后的内容 = %+v\n", string(jsonInfo))
}
выход
转为json前j结构体的内容 = {a:1 b:2 C:3 D:4}
转为json后的内容 = {"C":"3","DD":"4"}
объяснять
- В структуре определены четыре поля, соответствующие
小写无tag
,小写+tag
,大写无tag
,大写+tag
. - Преобразовать в
json
последний инициал小写的
с тегами или без都不能
Преобразовать вjson
содержание, при этом大写的
Добавленtag
Могу取别名
, не добавляйтеtag
ноjson
поля и поля структуры原名一致
.
Рекомендуемые статьи:
- Вопросы для интервью с Golang: как избежать побега из памяти? ?
- Вопросы для интервью с Голангом: просто поговорить о побеге из памяти?
- Вопрос из интервью с Golang: будет ли происходить копирование памяти при преобразовании строки в массив байтов?
- golang вопросы интервью: флип содержит
中文、数字、英文字母
Нить - Вопрос из интервью с Golang: копировать большой фрагмент дороже, чем маленький?
- Вопросы для интервью с Golang: Можете ли вы рассказать о разнице между uintptr и unsafe.Pointer?