【发布时间】:2022-01-21 02:45:51
【问题描述】:
我想打印出我在 Go 结构中的 JSON 的第一“行”。 JSON 看起来像
[
{
"id":"7",
"username":"user",
"subject":"subject",
"message":"message"
},
{
"id":"6",
"username":"user2",
"subject":"subject2",
"message":"message2"
},
{
"id":"5",
"username":"user3",
"subject":"subject3",
"message":"message3"
},
{
"id":"4",
"username":"user4",
"subject":"subject4",
"message":"message4"
},
{
"id":"3",
"username":"user5",
"subject":"subject5",
"message":"message5"
},
{
"id":"2",
"username":"user6",
"subject":"subject6",
"message":"message6"
},
{
"id":"1",
"username":"user7",
"subject":"subject7",
"message":"message7"
}
]
我把它放在这样的结构中
type Info struct {
Id string
Username string
Subject string
Message string
}
infoJson := html;
var information []Info;
err2 := json.Unmarshal([]byte(infoJson), &information);
if err2 != nil {
fmt.Println(err2);
}
然后我可以使用
将它们全部打印出来for _, info := range information {
fmt.Println(info.Id + " " + info.Username);
fmt.Println(info.Subject);
fmt.Println(info.Message);
}
我希望能够打印出与特定 id 对齐的 JSON。例如,我希望能够指定 7,然后 id:7 JSON 行中的所有内容都将以上述格式打印出来。所以它应该打印出来:
7 user
subject
message
我该怎么做?
【问题讨论】:
-
if info.Id != 7 { continue } -
我经常使用 map[int]Info 之类的东西创建字典。或者如果您知道它是唯一的,则使用字符串作为键。因此,不是附加到切片中,而是插入到地图中。然后不需要循环来获取元素或检查是否存在
标签: arrays json go struct println