json - 如何在结构中存储对象

标签 json struct go

我不确定如何创建一个 struct 来存储发布到我的 API 的 JSON 对象。

JSON 看起来像这样:

{ 
    "name" : "Mr Robinson",
    "email" : "test@test.com",
    "username" : "robbo123",
    "properties" : {
        "property1" : "a property",
        "property2" : "another property"
    },
    "permissions" : ["perm1", "perm2", "perm3"]
}

properties 可以有任意数量,permissions 数组可以包含任意数量的值。

我正在使用它来解码发布的值:

err := json.NewDecoder(req.Body).Decode(my_struct)

到目前为止,我的结构看起来像这样:

type User struct {
    Name      string      `json:"name"`
    Email     string      `json:"email"`
    Username  string      `json:"username"`
}

最佳答案

您可以对属性使用 map[string]string,对权限使用 []string slice :

type User struct {
    Name        string            `json:"name"`
    Email       string            `json:"email"`
    Username    string            `json:"username"`
    Properties  map[string]string `json:"properties"`
    Permissions []string          `json:"permissions"`
}

输出(包装):

{Name:Mr Robinson Email:test@test.com Username:robbo123 
    Properties:map[property1:a property property2:another property]
    Permissions:[perm1 perm2 perm3]}

Go Playground 上尝试完整的可运行应用程序.

关于json - 如何在结构中存储对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30371353/

相关文章:

ubuntu - 如何从源代码在我的 ubuntu 12.10 上安装 Go

sql-server - 如何为 GORM 关闭 IDENTITY_INSERT

http - 不在 net/http golang 中处理 GET

java - 如何在 java 中从 postgres 检索和使用 json 列以及非 json 列?

具有内部数组转换的 JSON 到字符串

c - C 中输出的奇怪问题

c - 哈希表中的链表(带结构)

c# - 指向结构数组中项目的索引器不起作用

ios - 显示 JSON 响应中的 cell.textLabel.text

javascript - 如何从 JavaScript 输出 JSON 输出,以便将其识别为 JSON?