我有以下结构的一部分。type ParamStruct struct { Paramname string Paramvalue interface{}}该值可以是字符串的整型浮点数。我需要将如下所示的切片转换为如下所示的 JSON 数组。[{name1 95} {name2 someStrValue} {name3 someOtherStrValue}][{ "name1": 1 },{ "name2": "someStrValue"},{ "name3": "someOtherStrValue"}]我尝试使用默认函数进行封送处理,并得到如下所示的JSON输出。[{"Paramname":"name1","Paramvalue":95},{"Paramname":"name2","Paramvalue":"someStrValue"},{"Paramname":"name3","Paramvalue":"someOtherStrValue"}]输出 JSON 必须是名称-值对,如上所示。关于如何以所需格式获取 JSON 输出的任何建议?下面是完整的代码示例package mainimport ( "encoding/json" "fmt")type ParamStruct struct { Paramname string Paramvalue interface{}}func main() { paramlist1 := make([]ParamStruct, 3) paramlist1[0].Paramname = "name1" paramlist1[0].Paramvalue = 95 paramlist1[1].Paramname = "name2" paramlist1[1].Paramvalue = "someStrValue" paramlist1[2].Paramname = "name3" paramlist1[2].Paramvalue = "someOtherStrValue" fmt.Println(paramlist1) js, err := json.Marshal(paramlist1) if err != nil { fmt.Printf("Error: %s", err.Error()) } else { fmt.Println(string(js)) }}
1 回答

holdtom
TA贡献1805条经验 获得超10个赞
你可以实现 json。封送拆器
接口。
例如:
type ParamStruct struct { Paramname string Paramvalue interface{} } func (ps ParamStruct) MarshalJSON() ([]byte, error) { return json.Marshal(map[string]interface{}{ps.Paramname: ps.Paramvalue}) }
https://play.golang.org/p/sUsR-FMZQmq
- 1 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消