반응형
json.Marshal(struct)이 "{}"을(를) 반환합니다.
type TestObject struct {
kind string `json:"kind"`
id string `json:"id, omitempty"`
name string `json:"name"`
email string `json:"email"`
}
func TestCreateSingleItemResponse(t *testing.T) {
testObject := new(TestObject)
testObject.kind = "TestObject"
testObject.id = "f73h5jf8"
testObject.name = "Yuri Gagarin"
testObject.email = "Yuri.Gagarin@Vostok.com"
fmt.Println(testObject)
b, err := json.Marshal(testObject)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(b[:]))
}
출력은 다음과 같습니다.
[ `go test -test.run="^TestCreateSingleItemResponse$"` | done: 2.195666095s ]
{TestObject f73h5jf8 Yuri Gagarin Yuri.Gagarin@Vostok.com}
{}
PASS
JSON은 왜 비어있습니까?
필드 이름의 첫 글자를 대문자로 하여 TestObject 필드를 내보내야 합니다.바꾸다kind
로.Kind
기타 등등.
type TestObject struct {
Kind string `json:"kind"`
Id string `json:"id,omitempty"`
Name string `json:"name"`
Email string `json:"email"`
}
인코딩/json 패키지 및 유사한 패키지는 보고되지 않은 필드를 무시합니다.
그`json:"..."`
필드 선언 뒤에 오는 문자열은 구조 태그입니다.이 구조체의 태그는 JSON으로 또는 JSON에서 마샬링할 때 구조체의 필드 이름을 설정합니다.
운동장에서 해.
- 첫 번째 문자가 대문자로 표시되면 ID는 사용하는 모든 코드에 공개됩니다.
- 첫 번째 문자가 소문자인 경우 식별자는 비공개이며 선언된 패키지 내에서만 액세스할 수 있습니다.
예
var aName // private
var BigBro // public (exported)
var 123abc // illegal
func (p *Person) SetEmail(email string) { // public because SetEmail() function starts with upper case
p.email = email
}
func (p Person) email() string { // private because email() function starts with lower case
return p.email
}
인골랑
구조체의 첫 번째 문자는 대문자로 해야 합니다.예: phonenumber -> Phone Number
======= 상세 추가
일단 이렇게 코딩을 해보겠습니다.
type Questions struct {
id string
questionDesc string
questionID string
ans string
choices struct {
choice1 string
choice2 string
choice3 string
choice4 string
}
}
golang 컴파일은 오류가 아니며 경고를 표시하지 않습니다.하지만 응답은 공허합니다.
그 후 구글에서 이 기사를 검색해 보았다.
Structure Types and Structure Type Literals 기사...코드 편집을 시도합니다.
//Questions map field name like database
type Questions struct {
ID string
QuestionDesc string
QuestionID string
Ans string
Choices struct {
Choice1 string
Choice2 string
Choice3 string
Choice4 string
}
}
일이요.
도움을 바라다.
언급URL : https://stackoverflow.com/questions/26327391/json-marshalstruct-returns
반응형
'programing' 카테고리의 다른 글
IN 절의 SQL 다중 열 (0) | 2023.03.27 |
---|---|
어제 레코드만 선택하려면 어떻게 해야 하나요? (0) | 2023.03.27 |
$.ajax()의 Ajax 요청에 어레이 전달 (0) | 2023.03.27 |
PropType과흐름 (0) | 2023.03.27 |
JavaScript의 Gutenberg 에디터 콘텐츠(WordPress) (0) | 2023.03.27 |