登录
首页 >  Golang >  Go问答

使用 Go map 创建 JSON 对象数组的方法

来源:stackoverflow

时间:2024-03-15 13:39:27 181浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《使用 Go map 创建 JSON 对象数组的方法》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我需要使用地图创建一个 json 数组。

package main
import "fmt"
func main(){
    id := [5]string{"1","2","3","4","5"}
    name := [5]string{"a","b","c","d","e"}
    parsedata := make(map[string]string)
    for counter,_ := range id {
        parsedata["id"] = id[counter]
        parsedata["name"] = name[counter]
        fmt.println(parsedata)
    }

}

我当前的输出:

map[id:1 name:a]
map[id:2 name:b]
map[id:3 name:c]
map[id:4 name:d]
map[id:5 name:e]

我需要如下所示的 json 输出:

[{id:1, name:A},
{id:2, name:B},
{id:3, name:C},
{id:4, name:D},
{id:5, name:E}]

我知道使用映射的基础知识,它是用于键:值对的字典。如何使用映射实现 json 输出。


解决方案


要通过地图创建 json 数组,您需要创建一个 map 作为 slice 和另一个只是单个地图,然后在单个地图中逐一赋值,然后将其附加到地图切片中,如以下代码所示:

package main

import (
    "fmt"
    "encoding/json"
)

func main(){
    id := [5]string{"1","2","3","4","5"}
    name := [5]string{"a","b","c","d","e"}

    parsedata := make([]map[string]interface{}, 0, 0)

    for counter,_ := range id {
        var singlemap = make(map[string]interface{})
        singlemap["id"] = id[counter]
        singlemap["name"] = name[counter]
        parsedata = append(parsedata, singlemap)
    }
    b, _:= json.marshal(parsedata)
    fmt.println(string(b))
}

您还可以测试超过 here

它将 json 打印为:

[{"id":"1","name":"a"},
{"id":"2","name":"b"},
{"id":"3","name":"c"},
{"id":"4","name":"d"},
{"id":"5","name":"e"}]

对我来说,这更像是一个对象数组。你可以得到你想要的输出,如下所示:

type data struct {
    id string
    name string
}

func main(){
    id := [5]string{"1","2","3","4","5"}
    name := [5]string{"a","b","c","d","e"}
    var parseddata []data

    for counter := range id {
        parseddata = append(parseddata, data{name: name[counter], id: id[counter]})
    }

    bytes, _ := json.marshal(parseddata)
    fmt.print(string(bytes))
}

输出应如下所示:

[
 {"Id":"1","Name":"A"},
 {"Id":"2","Name":"B"},
 {"Id":"3","Name":"C"},
 {"Id":"4","Name":"D"},
 {"Id":"5","Name":"E"}
]

本篇关于《使用 Go map 创建 JSON 对象数组的方法》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>