Go 구조를 JSON으로 변환하는 중
Go 구조를 JSON으로 변환하려고 합니다.json
하지만 내가 받는 건{}
분명 당연한 일이지만 잘 모르겠어요.
package main
import (
"fmt"
"encoding/json"
)
type User struct {
name string
}
func main() {
user := &User{name:"Frank"}
b, err := json.Marshal(user)
if err != nil {
fmt.Printf("Error: %s", err)
return;
}
fmt.Println(string(b))
}
실행하려고 하면 다음과 같은 메시지가 나타납니다.
$ 6g test.go && 6l -o test test.6 && ./test
{}
를 내보내야 합니다.User.name
이 필드를 통해json
패키지로 확인할 수 있습니다.이름을 변경합니다.name
까지 수비하다.Name
.
package main
import (
"fmt"
"encoding/json"
)
type User struct {
Name string
}
func main() {
user := &User{Name: "Frank"}
b, err := json.Marshal(user)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(b))
}
출력:
{"Name":"Frank"}
관련 문제:
구조를 JSON으로 변환하는 데 어려움을 겪었고, Golang에서 응답으로 보냈고, 나중에 Ajax를 통해 JavaScript에서 같은 내용을 포착했습니다.
많은 시간을 낭비했으니까 여기에 해결책을 게시하는 거야
이동 중:
// web server
type Foo struct {
Number int `json:"number"`
Title string `json:"title"`
}
foo_marshalled, err := json.Marshal(Foo{Number: 1, Title: "test"})
fmt.Fprint(w, string(foo_marshalled)) // write response to ResponseWriter (w)
JavaScript의 경우:
// web call & receive in "data", thru Ajax/ other
var Foo = JSON.parse(data);
console.log("number: " + Foo.number);
console.log("title: " + Foo.title);
흥미로운 질문입니다. 새로운 바둑 버전을 사용하는 것은 매우 쉽습니다.다음 작업을 수행해야 합니다.
package main
import (
"fmt"
"encoding/json"
)
type User struct {
Name string `json:"name"`
}
func main() {
user := &User{name:"Frank"}
b, err := json.Marshal(user)
if err != nil {
fmt.Printf("Error: %s", err)
return;
}
fmt.Println(string(b))
}
이 이름을 Name으로 변경합니다.
독자적인 커스텀 MarshelJ를 정의할 수 있습니다.SON과 UnmarshalJSON 메서드 및 의도적인 제어:
package main
import (
"fmt"
"encoding/json"
)
type User struct {
name string
}
func (u *User) MarshalJSON() ([]byte, error) {
return json.Marshal(&struct {
Name string `json:"name"`
}{
Name: "customized" + u.name,
})
}
func main() {
user := &User{name: "Frank"}
b, err := json.Marshal(user)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(b))
}
구조값은 JSON 개체로 인코딩됩니다.내보낸 각 구조 필드는 다음과 같은 경우를 제외하고 객체의 구성원이 됩니다.
- 필드의 태그는 "-" 또는
- 필드가 비어 있고 태그가 "빈" 옵션을 지정합니다.
빈 값은 false, 0, 제로 포인터 또는 인터페이스 값 및 길이0의 배열, 슬라이스, 맵 또는 문자열입니다.객체의 기본 키 문자열은 구조 필드 이름이지만 구조 필드의 태그 값으로 지정할 수 있습니다.구조 필드의 태그 값에 있는 "json" 키는 키 이름이며, 그 뒤에 옵션인 쉼표와 옵션이 있습니다.
언급URL : https://stackoverflow.com/questions/8270816/converting-go-struct-to-json
'source' 카테고리의 다른 글
false 체크 (0) | 2023.03.25 |
---|---|
IPhone에서의 JSON 날짜 해석 (0) | 2023.03.25 |
$.ajax 오류가 타임아웃인지 확인합니다. (0) | 2023.03.25 |
angular.js에 history.back()을 구현하는 방법 (0) | 2023.03.25 |
select with union 및 CLOB 필드를 사용할 때 오류 ORA-00932 (0) | 2023.03.25 |