json - Golang JSON 解码到字段,但不编码到 JSON 响应

标签 json go

我希望能够访问由 JSON 解码产生的结构字段,但我想在它被编码时使用相同的结构来隐藏该字段。

例子:

type MyStruct struct {
    GoodField string `json:"goodField"`
    SecretField string `json:"secret"`
}

传入的 JSON 被解码并且 secret 字段可以访问 在服务器响应中使用相同的 MyStruct隐藏 secret 字段。

我看过使用 omitempty- 标签,但没有用。

最佳答案

你在 omitempty 上走在了正确的轨道上,你只需将 SecretField 设置为 "" 即可生效

package main

import (
    "fmt"
    "encoding/json"
)

type MyStruct struct {
    GoodField string `json:"goodField"`
    SecretField string `json:"secret,omitempty"`
}

func main() {

    data := MyStruct{}

    s := `{"goodField": "xxx", "secret": "yyy"}`

    json.Unmarshal([]byte(s), &data);

    fmt.Println(data.GoodField, data.SecretField);

    data.SecretField = ""

    response, _ := json.Marshal(data)

    fmt.Println(string(response))

}

关于json - Golang JSON 解码到字段,但不编码到 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47853120/

相关文章:

com.netflix.governator.guice.BootstrapBinder.install 中的 java.net.MalformedURLException

android - 使用 Volley 进行响应处理

json - 如何实现自定义 json 验证器

go - 从 GORM V1 迁移到 V2 时获取 "Missing Error method"

go - 处理函数中的接收器,例如 filepath.WalkFunc

java - 如何使用循环引用进行 json 处理?

c# - 使用 .NET Core System.Text.Json 序列化/反序列化类层次结构

c# - 返回错误代码是否比 out 参数慢?

rest - Go gorilla 记录每个请求持续时间和状态码

javascript - 格式化json日期添加0