猿问

golang - 将结构格式化为 json

有谁知道如何为多级结构设置标签名称?结构体的顶级标签名称可以正常工作,但所有子级别的标签名称都与结构体中的名称相同。试图将所有标签名称设置为小写。


代码可以在这里运行:


package main


import (

    "encoding/json"

    "log"

)


type Source struct {

    Pointer   string `json:pointer,omitempty"`

    Parameter string `json:parameter,omitempty"`

}


type Error struct {

    Status int     `json:"status,omitempty"`

    Source *Source `json:"source,omitempty"`

    Title  string  `json:"title,omitempty"`

    Detail string  `json:"detail,omitempty"`

}


type Errors struct {

    Errors *[]Error `json:"errors"`

}


func main() {

    errors := new(Errors)

    errors.Errors = new([]Error)

    error := new(Error)

    error.Source = new(Source)

    error.Source.Pointer = "pointer"

    error.Status = 401

    error.Title = "title"

    error.Detail = "detail"

    *errors.Errors = append(*(errors.Errors), *error)

    response, _ := json.Marshal(errors)

    log.Println("response", string(response))

}

输出:


{

   "errors": [

   {

      "status": 400,

      "source": {

        "Pointer": "pointer",

        "Parameter": ""

      },

      "title": "title",

      "detail": "detail"

    }

  ]

}



幕布斯6054654
浏览 191回答 1
1回答

交互式爱情

你错过了一些引用:Pointer   string `json:pointer,omitempty"`Parameter string `json:parameter,omitempty"`                  // ^^^ Here.游乐场:https : //play.golang.org/p/P3oHK29VKQ。
随时随地看视频慕课网APP

相关分类

Go
我要回答