Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何在结构中存储对象_Json_Struct_Go - Fatal编程技术网

Json 如何在结构中存储对象

Json 如何在结构中存储对象,json,struct,go,Json,Struct,Go,我不知道如何创建一个struct来存储正在发布到我的API的JSON对象 JSON如下所示: { "name" : "Mr Robinson", "email" : "test@test.com", "username" : "robbo123", "properties" : { "property1" : "a property", "property2" : "another property" }, "pe

我不知道如何创建一个
struct
来存储正在发布到我的API的JSON对象

JSON如下所示:

{ 
    "name" : "Mr Robinson",
    "email" : "test@test.com",
    "username" : "robbo123",
    "properties" : {
        "property1" : "a property",
        "property2" : "another property"
    },
    "permissions" : ["perm1", "perm2", "perm3"]
}
type User struct {
    Name      string      `json:"name"`
    Email     string      `json:"email"`
    Username  string      `json:"username"`
}
可以有任意数量的
属性
,并且
权限
数组可以包含任意数量的值

我用这个来解码发布的值:

err := json.NewDecoder(req.Body).Decode(my_struct)
到目前为止,我的结构如下所示:

{ 
    "name" : "Mr Robinson",
    "email" : "test@test.com",
    "username" : "robbo123",
    "properties" : {
        "property1" : "a property",
        "property2" : "another property"
    },
    "permissions" : ["perm1", "perm2", "perm3"]
}
type User struct {
    Name      string      `json:"name"`
    Email     string      `json:"email"`
    Username  string      `json:"username"`
}

您可以对属性使用
map[string]字符串
,对权限使用
[]字符串
切片:

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"`
}
输出(已包装):


在上尝试完整的可运行应用程序。

您可以使用
映射[string]字符串
作为属性,使用
[]字符串
切片作为权限:

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"`
}
输出(已包装):

在上尝试完整的可运行应用程序