이동 시 JSON Marshal이 포함된 소문자 JSON 키 이름
사용하고 싶다"encoding/json"응용 프로그램의 Import된 패키지 중 하나에 선언된 구조물을 정리하는 패키지.
예:
type T struct {
Foo int
}
가져오기 때문에 구조체의 모든 사용 가능한(내보낸) 필드는 대문자로 시작합니다.단, 키명은 소문자로 해 주세요.
out, err := json.Marshal(&T{Foo: 42})
결과적으로
{"Foo": 42}
하지만 나는 그것을 얻기를 원합니다.
{"foo":42}
그 문제를 쉽게 해결할 수 있을까요?
인코딩/json에 대한 문서를 확인하십시오.보안관님구조 필드 태그를 사용하여 생성된 json의 형식을 결정하는 방법에 대해 설명합니다.
예를 들어 다음과 같습니다.
type T struct {
FieldA int `json:"field_a"`
FieldB string `json:"field_b,omitempty"`
}
이렇게 하면 다음과 같이 JSON이 생성됩니다.
{
"field_a": 1234,
"field_b": "foobar"
}
내보낼 키를 사용하여 자체 구조를 만들고 소문자 이름에 적합한 json 태그를 지정할 수 있습니다.그런 다음 JSON으로 인코딩하기 전에 원하는 구조를 자신의 구조로 복사할 수 있습니다.또는 로컬 구조물을 만드는 데 번거롭지 않으시다면, 아마 그 구조물을 만들 수 있을 겁니다.map[string]interface{}부호화해 주세요.
이러한 태그를 자동으로 생성할 수 있는 방법만 추가합니다.gopls특히 큰 json 구조의 경우 태그를 수동으로 추가하는 것은 간단한 작업이기 때문에 기능은 라이브 세이버입니다.
추가goplslangserver는 선호하는 에디터에 따라 다릅니다.그 후:
go install golang.org/x/tools/gopls@latest
CoC를 사용하는 Neovim의 경우 다음과 같은 작업을 수행할 수 있습니다.:CocInstall coc-go그리고 나서.go.tags.addCoC 확장자 go에 대한 자세한 내용은 여기를 참조하십시오.
생성할 수 있습니다.json:"camelCase"fatih/gomodifytag가 있는 구조 필드의 태그.
예.
$ gomodifytags -file main.go -struct T -add-tags json -transform camelcase -quiet -w
다음 번호:-override기존 태그를 덮어씁니다.
언급URL : https://stackoverflow.com/questions/11693865/lowercase-json-key-names-with-json-marshal-in-go
'codememo' 카테고리의 다른 글
| 각도 js에 ng-include 로드 완료 (0) | 2023.02.08 |
|---|---|
| Woocommerce 3에서 제품 속성 레이블 이름을 가져옵니다. (0) | 2023.02.08 |
| PHP 루프:세 항목 구문 주위에 div를 추가합니다. (0) | 2023.02.08 |
| Angular.js 지시어에서 ng는 무엇을 나타냅니까? (0) | 2023.02.08 |
| WordPress 핵심 기능을 덮어쓰려면 어떻게 해야 합니까? (0) | 2023.02.08 |