gpt4 book ai didi

go - 当某些成员 protected /内部/隐藏时如何编码结构

转载 作者:IT王子 更新时间:2023-10-29 01:17:08 25 4
gpt4 key购买 nike

如何确保在编码时包含此 LookupCode 结构中的字段?

package main

import (
"encoding/json"
"fmt"
)

type LookupCode struct {
code string `json:"code"`
name string `json:"name"`
}

func (l *LookupCode) GetCode() string {
return l.code
}

func main() {
c := &LookupCode{
code: "A",
name: "Apple",
}

b, _ := json.MarshalIndent(c, "", "\t")

fmt.Println(string(b))
}

http://play.golang.org/p/my52DAn0-Z

最佳答案

您可以通过实现 json.Marshaller 接口(interface):

完整示例:http://play.golang.org/p/8mIcPwX92P

// Implement json.Unmarshaller
func (l *LookupCode) UnmarshalJSON(b []byte) error {
var tmp struct {
Code string `json:"code"`
Name string `json:"name"`
}
err := json.Unmarshal(b, &tmp)
if err != nil {
return err
}
l.code = tmp.Code
l.name = tmp.Name
return nil
}

func (l *LookupCode) MarshalJSON() ([]byte, error) {
return json.Marshal(struct {
Code string `json:"code"`
Name string `json:"name"`
}{
Code: l.code,
Name: l.name,
})
}

关于go - 当某些成员 protected /内部/隐藏时如何编码结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25394779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com